繁体   English   中英

您喜欢哪种数据库设计? 一种与实际的物理关系或一种模仿它的物理关系?

[英]What database design do you favor; one with actual physical relations or one that mimics it?

设计关系数据库时的最佳实践是什么? 要在表之间建立物理关系(从表到表之间绘制一条实际线)还是仅模仿这种关系?

例如

TableA具有列

ID, Name

TableB具有列

ID, CNIC, TableA_ID 

现在, TableA_ID上没有实际的外键约束,但是仍然存储映射到TableA的ID列的值。

我认为后者是好的,并且我相信前者会变慢并且存在级联操作问题?

数据库的主要工作之一是确保数据完整性
数据完整性的一部分是引用完整性
关系数据库可确保具有外键约束的引用完整性。

删除约束,然后删除数据库防止损坏数据的功能。

因此,在关联表时始终应指定外键,即使是以性能损失为代价(通常可以忽略不计)。

即使约束不存在,您也无法模仿它-即使您有一个前端应用程序可以验证输入到数据库中的所有数据-没有什么可以阻止开发人员,DBA或直接访问该数据库的任何人数据库错误地输入损坏的数据。

关系模型不包含任何形式的物理链接。 一个关系(表)可以使用“键-外键”对来引用另一个关系(“键”可能不是主要的)。 为了确保引用的完整性,需要使用外键约束。 默认情况下,应在设计中使用外键约束。

通常,数据库设计人员可以在FK列上添加索引,并且不考虑任何其他性能问题,因为它们在生产中得到了很好的管理(即临时禁用FK检查,批量加载操作忽略FK等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM