我正在创建一个以 name
作为列的表,这样有多行具有相同的名称,并且每个名称对应有其他值(列)。
我必须设计表格,以便有两组值默认和最新。因此,用户可以查询以获取默认/最新设置,并可以编辑表格以将特定值集设置为默认值,替换以前的默认值集。
我正在考虑通过保留一个 flag 列来实现这一点,其中: 0 表示该行是默认设置,1 表示最新设置,2 表示只是一般行。
表:
NAME ADDRESS CITY FLAG
Hansen Timoteivn 10 Sandnes 1 (LATEST)
Hansen street 13 texas 0 (DEFAULT)
Svendson Borgvn 23 Sandnes 1 (LATEST)
Svendson street 14 colaba 2 (GENERAL)
Svendson street 15 Houston 0 (DEFAULT)
Pettersen Storgt 20 Stavanger 0 (DEFAULT)
Pettersen Storgt 21 texas 1 (LATEST)
我正在考虑这样实现:
alter table TABLE_NAME add flag number CONSTRAINT <constraintname>
CHECK (flag IN (0, 1, 2));
除了保留标志之外,还有更好的方法来做到这一点吗? 我做错了吗??
最佳答案
Is there a better approach to do this apart from keeping a flag ??
通常,默认设置将通过标志列显示,但不显示有关最新设置的信息。
为了存储最新信息,表将包含 2 个附加时间戳列:创建和修改(并且您可能还有两个附加列显示创建者、修改者)。
如果您有这些审核列,那么只需查看这些时间戳即可找出最新列,具体取决于最新是否意味着最近创建或最近修改。
关于mysql - 数据库表设计问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264914/