好的,我想构建一个非常复杂的系统,允许用户在将数据插入 Mysql DB 之前复杂地操作数据。
因此,该系统必须具有:
- 插入功能(功能1),允许用户将数据插入系统。
- 一个读取函数(函数 2)从 DB 中读取数据,之后用户可以复杂地操作数据。
- 更新功能(功能 3)。用户在函数 2 中进行大量修改后,用户将更新数据。新数据与旧数据不完全相同(即数据可能比以前更多,并且数据的处理方式与以前非常不同)
好的,现在功能1很难做,功能2不太难,但是如果我们真的修改DB中的旧数据,功能3会非常困难。
所以,这是我的解决方案,而不是花费大量时间来构建函数 3(我们不确定它是否没有错误,因为它太复杂了),我决定不构建函数 3,而只是将新数据插入数据库并删除旧数据。这意味着函数 3 正是函数 1,唯一不同的是我们必须删除函数 1 中插入的旧数据。
所以,我决定在 Mysql 中使用 Auto-Increment & Int。
但是由于我们可能会多次更新数据(可能是 300 到 500 行)(可能在 4 年内更新 20 次),这意味着我们必须删除旧数据 20 次并且 Auto-Increment 字段不断增加数量。
我的问题是,
“不要构建更新功能并像插入功能一样构建更新功能”是好还是坏的解决方案?
第二,“如果我们像插入函数一样构建更新函数,那么它会是一个稳定的系统吗?”
第三,“如果我们像插入函数一样构建更新函数,那么,1天,我们会用完这个数字(max int is 2147483647)吗?”
在我看来,我更喜欢“像插入函数一样构建更新函数”的解决方案,因为我们可以将旧数据保留为以前的版本,我们甚至不需要删除它,它为我节省了很多时间。还有,2147483647太大了,人生苦短,你觉得呢?
笔记:
- 数据存储在主表上,说明这个表没有外键,其他表都要用这个表的数据做外键吗?
- 我们可以将旧数据保留为以前的版本。插入新数据后,如果用户搜索信息,系统将查看新数据,而不是旧数据。当然,他可以通过点击查看以前的版本来选择查看旧数据。