gpt4 book ai didi

database - 包含两列外键的数据库表是否应该有第三列作为主键?

转载 作者:太空狗 更新时间:2023-10-30 01:43:05 25 4
gpt4 key购买 nike

包含两列外键的数据库表是否应该有第三列作为主键?

我猜不是,因为外键是它们自己表中的主键,所以它们将是唯一的。

我正在使用 MySQL,以下三个表正在使用 InnoDB 引擎。

=======================    =======================
| galleries | | images |
|---------------------| |---------------------|
| PK | gallery_id | | PK | image_id |
| | name | | | title |
| | description | | | description |
| | max_images | | | filename |
| | enabled | | | enabled |
======================= =======================

========================
| galleries_images |
|----------------------|
| FK | gallery_id |
| FK | image_id |
========================

我应该向 galleries_images 表添加 PK 吗?

最佳答案

理论上,如果两个外键(FK)的组合在表中是唯一的,或者如果两个外键加上其他一些列的组合是唯一的,那么该表有一个复合主键并且没有strict 需要引入另一个键作为代理主键。然而,人们确实会添加一个额外的 key ,这并不罕见。在某种程度上,这取决于具有复合主键的表中数据的其他用途。如果它描述的内容本身有来自其他表的行与其关联,那么引入一个简单的 PK 可能是有意义的。

有些软件似乎需要简单的 PK,即使关系数据模型不需要。

关于database - 包含两列外键的数据库表是否应该有第三列作为主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3085881/

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