gpt4 book ai didi

SQL:你需要一个多对多表的自增主键吗?

转载 作者:行者123 更新时间:2023-12-03 14:37:45 24 4
gpt4 key购买 nike

假设您在艺术家和粉丝之间有一张多对多表。在设计 table 时,您是否像这样设计 table :

ArtistFans
ArtistFanID (PK)
ArtistID (FK)
UserID (FK)

(ArtistID and UserID will then be contrained with a Unique Constraint
to prevent duplicate data)

或者您是否为两个相关领域构建使用复合 PK:
ArtistFans
ArtistID (PK)
UserID (PK)

(The need for the separate unique constraint is removed because of the
compound PK)

使用以前的模式有什么好处(也许是索引?)?

最佳答案

ArtistFans
ArtistID (PK)
UserID (PK)

使用自动增量 PK 在这里没有优势,即使父表有它们。

我还会在 (UserID, ArtistID) 上自动创建一个“反向 PK”索引太:您将需要它,因为您将按两列查询表。

自动编号/ID 列有它们的位置。在基于物理平台的规范化过程之后,您会选择它们来改进某些事情。但不适用于链接表:如果你脑残的 ORM 坚持,那么改变 ORM ......

编辑,2012 年 10 月

重要的是要注意,您仍然需要唯一的 (UserID, ArtistID)(ArtistID, UserID)索引。添加自动增量只会使用更多不应使用的空间(在内存中,而不仅仅是在磁盘上)

关于SQL:你需要一个多对多表的自增主键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/790334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com