在一个时间数据库中,日期应该存储在一张表还是两张表中?如果只有一张表,是否违反了规范化?
PERSON1 DATE11 DATE21 INFO11 INFO21 DEPRECATED
PERSON2 DATE21 DATE22 INFO21 INFO22 CURRENT
PERSON1 DATE31 DATE32 INFO31 INFO32 CURRENT
DATE1和DATE2列表示在DATE1和DATE2之间,INFO1和INFO2是正确的。如果DATE < TODAY,则这些事实被弃用,不应再显示在用户界面中,但为了历史目的,它们不应被删除。例如,INFO11和INFO21现在已经被弃用。
我应该拆分这个表吗?我应该在表中存储状态(弃用或当前)吗?
进一步澄清问题,"弃用"是业务使用的术语,如果您喜欢"非当前",问题并不是语义上的,也不涉及SQL查询,我只想知道哪种设计违反或最适合规范化规则(我知道规范化并不总是可取的,这也不是我的问题)。