gpt4 book ai didi

mysql - 嵌套外键(多表)

转载 作者:行者123 更新时间:2023-11-29 03:40:52 24 4
gpt4 key购买 nike

我有三个表:

用户:id

文件夹:id, user_id

单词:id,folders_id

(每个表中都有更多的列,但它们与这个问题无关)

一个用户包含多个文件夹,每个文件夹包含几个单词。

到目前为止一切顺利。我在 MySQL Workbench 的帮助下将这些表与外键互连。

MySQL-Workbench 对第一个连接(folders.user_id -> user.id)所做的与我预期的一样。但是当我添加第二个关系(words.folders_id -> folders.id)时,它会自动生成一个跨两列的索引:预期的 folders.id 以及第一个外键 folders.user_id 的列

This is the screenshot of MySQL Workbench after having added the second foreign key. Automatically, this one is generated also over the column of the first foreign key: folders.user_id

我一直认为,MySQL 数据库中的重复数据不是一个好的解决方案。但是为什么 MySQL-Workbench 建议我这样做呢?我能想到的唯一优点是,我可以直接从单词中选择用户的 ID,而无需 JOIN。这是两列索引的目的吗?

谢谢你给我解释这个现象。


我还没有找到解决方案,但是当我在谷歌图片中搜索 diagrams of relationships in MySQL Workbench 时,这些嵌套的外键永远不会出现。所以我假设它们不是必需的,我只是在 MySQL Workbench 创建它们时不断删除它们。

最佳答案

为什么不按如下方式编写查询:

select user.id from user
inner join folders on folders.user_id=user.id
inner join words on words.folder_id=folders.id

关于mysql - 嵌套外键(多表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14103773/

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