mysql根据其状态将数据移动到另一个表中

nqwrtyyt  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(239)

我有一个表(booking),有8列(date from、date to和一些外键)和两列(deleted、completed),它们决定了预订的状态。
将已完成的预订行移动到新表(deletedbookings和completedbookings)中并删除这两列是一个好主意,还是应该让它们进入当前表并用布尔值设置状态。

pes8fvy9

pes8fvy91#

如果您只想创建包含一列的新表,则不建议删除这些列并创建新表。根据数据仓库的设计,如果这两个列都未规范化,则可以使用它们,并且可以对其进行标记或维护实际值。

lskq00tm

lskq00tm2#

另一种方法是有两个表叫做, Current 以及 History . 大多数质疑都是反对的 Current . 它不需要你建议的任何一个旗子,但是 History 可能有那些标志确实表明了为什么它们不再处于当前状态。
在“正常”情况下,
一行被添加到 Current .
无论在那里做了什么操作(对于“主动”预订)。
该行将从当前事务中删除并添加到历史记录中(在此传输过程中,将添加/删除额外的列。)
如果希望清除“旧”历史记录行,那么可以考虑使用 PARTITIONingHistory ,但不是 Current .
从其他表到这两个表的链接是不可能的。但是相反的情况是可能的(正常化等)。
这两个表可能有不同的索引。总的来说,敞开心扉,看看这两张table之间有什么不同是有益的。

相关问题