将日期字段作为主键的一部分包含哪些优缺点?
考虑一个零件库存表 - 如果要在每天结束时存储库存水平,那么part_id和date_of_day上的复合主键就可以了.您可以选择使其成为唯一键并添加合成主键,特别是如果您有一个或多个表使用外键约束引用它,但除此之外没有问题.
所以没有什么不一定的错误,但像其他任何方法一样,它可以像帕特里克的例子那样被错误地使用.
编辑:这是另一个要添加的评论.
我想起了我刚才写的关于数据库中的日期值是真的是自然的还是合成的.日期为"YYYY-MM-DD"的可读表示当然是自然的,但在Oracle内部,它存储为一个数字,只表示Oracle的特定日期/时间.我们可以选择并随时更改该内部值的表示(以不同的可读格式,或完全不同的日历系统)而无需内部值失去其意义在于特定的日期和时间.我认为在此基础上,DATE数据类型介于自然和合成之间.