前端之家收集整理的这篇文章主要介绍了
sql – 数据建模:是否需要使用交叉表?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
考虑以下几点:
我有两个表(客户和案例)定义如下:
**Customers**
CustomerId (PK)
CustomerName
CustomerPhone
**Cases**
CaseId (PK)
CaseManager
CaseNotes
每个客户可以拥有无限量的案例,但每个客户只能属于一个客户.所以为了将表相互关联,我将使用一个交叉表(CustomerCases),它分别由每个表中的外键组成.
但是,无法将Customers表中的CustomerID作为Cases表的外键添加?我觉得我错过了一些东西.是否有任何陷阱,我应该注意,我应该选择不使用交叉表?
如果一个案例只能属于一个客户,对我来说似乎完全合理,只需要将一个CustomerID FK
添加到Cases表中即可. 如果您认为该要求可能最终会改变(例如,一个案例可能有多个客户),则交叉表
方法可能会更有意义. 另外除非你有一个无限
数量的CaseManagers,否则,有一个Managers表并且从Cases表中有一个FK也是有意义的.
原文链接:https://www.f2er.com/mssql/75593.html