(另外)在MySQL表中实现行归档

时间:2015-07-26 16:15:24

标签: mysql sql

我确实意识到我绝对不是第一个处理这个问题的人,但我有一些背景,我无法找到令人满意的答案。

我在T MySQL触发器(包括ON DELETE),x PHP脚本和y视图2和{{1}中使用了一个表VTVT2前缀是我的命名约定)。说到应用程序,可以预期新的功能需求会逐渐出现,因此V的结构仍然存在。

现在,在应用程序中,我需要(另外)实现T行的归档(删除它们,但备份)。

有两种解决方案:

1)添加一个布尔列T并创建一个类似于archived的视图,并将所有VCurrentT次出现的x+y+z+2替换为T。< / p>

2)创建一个备份表VCurrentT(与T'相同的实体)并扩展T中的ON DELETE触发器。

现在的利弊:

ad 1)我发现它更优雅和正确,但是会有一个显着的重写部分(可能的错误来源)。此外,我怀疑视图命名的正确性(T派生自VT) - 可能应重命名VCurrentTVT视图 - 甚至更多重写!

ad 2)它更容易实现,并且可能更快(表中没有更多使用的归档行),但我发现它不优雅。我们需要维护两个表。

你觉得哪个更好?

0 个答案:

没有答案