数据库设计Mysql

时间:2017-08-29 09:03:56

标签: php html mysql twitter-bootstrap database-design

目前我发现自己想知道在这种情况下这是否正确。

您看到我有一个名为仓库

的数据库

我这个数据库我有两个表:

[表项目用于保存系统添加 - 修改 - 删除记录的项目]

  1. 项目(其列为)
    • TAG_ID
    • P_NUMBER
    • QUANTITY
    • TYPE
    • LOCATION
    • 说明
    • 原因
    • USERID
    • DATE
  2. [table lastchanges用于保存已更改的系统项目]

    1. lastchanges (其列为)
      • ID
      • TAGID
      • PNUMBER
      • USERID
      • ACTION
      • 约会
    2. 现在我被要求将“确切改变的内容”添加到当前表单中,例如,如果数量已更改,我必须在引导程序表单之前和之后显示。

      我的大脑告诉我只是将表项的所有列添加到lastchanges 并在更改之前将数据保存到这些列中并将项目保存到新修改的数据中,但是性能方面我看到了这一点作为一个不好的行动,我想要你的意见。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要更改数据库的历史记录。

如果这就是我建议您为每个条目创建一个新行并软删除旧行。然后什么都不会丢失,你总能获得差异或旧的价值观。

添加字段deleted_atcreated_at作为日期可以帮助您。如果deleted_at为空,则为当前条目,如果有日期设置,则确切知道何时获得"覆盖"