繁体   English   中英

SQL-一个带有多个外键的超长表与几个短表

[英]SQL - One very long table with several foreign keys VS several short tables

在性能方面,哪个更好?

一个带有几个外键和很多行的表

要么

具有一个外键的几个表,每个表的数据较少。

例:

我想创建一个表,其中包含供用户使用的注释,每个注释将与另一个表相关。 一种选择是

注释(ID,文本,客户ID,帐户ID,用户ID,另一个ID)将为每个不相关的外键包含空值,因此:

ID  Text           CustomerID  AccountID  UserID   AnotherID
1   "Call James"   1           null       null     null
2   "Call Havale"  null        2          null     null
3   "Call Shimi"   null        null       4556     null

另一个选择是打开单独的表,为每个表键入外键:

AccountNotes(ID, Text, AccountID) 

CustomerNotes(ID, Text, CustomerID)

UserNotes(ID, Text, UserID), etc...

最后一个选择是将其视为多对多关系,尽管并非如此(例如, Notes_to_Accounts(NoteID,AccountID)表..)。

我在这里找到的所有答案都是关于一个具有几列的表,然后是许多具有较少列的小表,这不是我要解决的问题。

提供第三个选项,但对于简单实体(一个文本字段)来说可能太复杂了:

Notes(Id, Text)
AccountNotes(AccountId, NoteId)
CustomerNotes(CustomerId, NoteId)

暂无
暂无

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

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