Hem*_*mal 1 database sql-server database-design foreign-keys
我遇到了一个决定性的情况。它与 RDBMS 尤其是 SQL Server 有关。
根据我的想法,任何数据库都有多个表,并且这些表直接通过键或在查询时通过联接互连。现在,根据我的理解,我想到了以下两种数据库设计选项。
1 - 没有关系(没有外键)
如果我不提供表之间的任何外键关系,我可能没有参照完整性,但我可以使用 PK 删除父记录,而子记录仍然完好无损。如果我在父级中重新创建 PK 记录,它会在加入时再次开始引用其子级。这是好处之一。但是如果我更新父PK记录,我必须更新所有表记录。这就是缺点。
2 - 与关系(与外键)
如果我在表之间建立了外键,我不需要为这些记录的更新和删除进行额外的编码。但当我只想删除 PK 或父记录时,问题就来了。因此,我需要在每个表中提供一些列,然后我必须在我使用的每个查询中IsActive
查找列。IsActive
这是非常令人讨厌和冗长的。所以它也并不完全完美。
现在你能建议我应该采用什么数据库设计模式来摆脱这个困境吗?