我的项目中有几个模型确实应该使用识别关系,但出于速度和简单性的原因,我将它们设置为具有唯一的自动增量主键。例如,联系人中的电子邮件地址:
Public Class EmailAddress
'This is currently the primary key
Public Property EmailAddressID As Integer
'These three properties really make a composite primary key in an identifying relationship with contacts
Public Property ContactID As Integer
Public Property Address As String
Public Property Domain As String
End Class
我对此设置有两个问题:
nvarchar
字段是否真的会减慢数据库的速度以保证不使用它(因为我被引导相信学校)?答案 0 :(得分:2)
没有。密钥是一种逻辑的数据完整性功能;表现取决于许多其他事情。
在关系模型和SQL中,识别和非识别关系之间的区别很少或根本没有重要性。您可能会发现这些术语有助于理解概念模型,但它们并不是制定数据库设计决策的真正基础。你提到的所谓“好处”基本上只是语法糖。