【发布时间】:2013-01-29 09:59:50
【问题描述】:
我们有一个项目正在运行,我需要在一个由不同公司创建的新数据库中进行一些 ETL 工作。在浏览开发人员给我的数据库图时,我看到其中 4 个表有一个循环引用:
我无法上传图表,但这里是表格的一般结构:
案例
- ID (PK) CaseStatusInfo (FK)
- SignOffPlanning (FK)
- SignOffReportReview (FK)
- SignOffQuarterlyReview (FK)
案例状态信息
- ID (PK)
- 案例 ID (FK)
退出计划
- ID (PK)
- 案例 ID (FK)
SignOffReportReview
- ID (PK)
- 案例 ID (FK)
SignOffQuarterlyReview
- ID (PK)
- 案例 ID (FK)
如何使用链接到 Case 表的这些 Info 表是通过将主键存储在每个 Info 表中来存储案例的历史状态。这确实合乎逻辑,但我觉得进一步规范化这些表以将历史数据保留在这些规范化表中可能会更好。
我的问题是:使用这种类型的数据库结构而不是进一步规范化表会产生什么问题?
【问题讨论】:
标签: sql database-design foreign-keys primary-key circular-reference