sql – 外键有多少?

经过这篇文章
http://diovo.com/2008/08/are-foreign-keys-really-necessary-in-a-database-design/

在设计数据库时使用外键好像是一个好主意.但是你什么时候使用太多?

例如,假设我有一个主表用于存储其他程序引用以下列的机械零件信息列表:

> ID
>名称
>颜色
>价格
>测量单位
>类别
>等…

我应该制作包含所有可能的颜色,单位和类别列表的表,然后将它们设置为我的机器零件信息表中的相应列的外键?使用外键的好处在哪里会减轻事实上我正在制作所有这些额外的表和关系?

谢谢,

解决方法

您希望能够确定地存在数据库中只有已知的有效值的任何属性都应使用外键进行保护.否则,您只能希望在应用程序代码中捕获无效值,并在将来创建任何接口.

有更多的表和关系不是一件坏事.唯一的问题 – 通常不是一个 – 与维护用于执行这些关系的索引的开销有关.在您遇到性能问题之前,您应该为“应该”具有一个列的每个列创建外键关系(因为值需要根据列表进行验证).

在我愿意牺牲表演的正确性之前,表现考虑必须非常可怕.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...