【发布时间】:2021-09-25 15:01:41
【问题描述】:
我正在学习 SQL,并且有一个关于存储以前的多对多关系的问题。
我有一个学生实体和一个导师实体,它们通过关联表耦合在一起。如果学生要更换导师,我想存储该学生以前的导师。
【问题讨论】:
-
视情况而定。另一种选择可能是引入有效间隔(字段
valid_from_dt和valid_to_dt)并添加具有新有效间隔的新行。如果您将当前记录的上限设置为诸如date '9999-12-31'之类的“无穷大”并按该日期进行分区,则它应该在当前状态下显示出良好的性能。此外,对于历史数据的查询也非常方便,因为您只需在该时间间隔内输入一些日期,但它们不会那么快,您未来的所有查询都应该使用该日期。 -
基本上你在谈论为这个特定元素构建一个审计日志。我会考虑你真正需要多少审计日志(这意味着如果你有大量的审计要求,可能会建立一个用于更改数据捕获的流程)。这是一个更高级的概念,最佳实践标准可能会从 RDBMS 变为 RDBMS。
标签: sql database postgresql database-design entity-relationship