您喜欢什么数据库设计; 一个与实际身体关系或模仿它的人?

azu*_*boy 0 sql database sql-server database-design relational-database

设计关系数据库时的最佳做法是什么?要在表格之间建立物理关系(从表格到表格的实际线条)或仅模仿关系?

例如

TableA有列

ID, Name
Run Code Online (Sandbox Code Playgroud)

TableB有列

ID, CNIC, TableA_ID 
Run Code Online (Sandbox Code Playgroud)

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

我认为后者是好的,我相信前者减速并且有级联操作问题?

Zoh*_*led 5

数据库的主要工作之一是确保数据完整性.
数据完整性的一部分是参照完整性.
关系数据库确保使用外键约束的引用完整性.

删除约束,并删除数据库功能以防止损坏的数据.

因此,当表格相关时,您应该始终指定外键,即使是性能损失的代价(无论如何通常可以忽略不计).

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