gpt4 book ai didi

mysql - 外键约束和桥接表

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

我目前正在使用 6 个表:userscategoriesvideogamesvideogames_categories_bridge users_favoritesuser_dislikes。我试图以尽可能最好的方式布局表格,以显示用户对视频游戏的偏好(参见下面的示例)。但是,我在创建表时遇到外键约束错误。我如何使用当前的表架构实现(如果可能)以下内容?另外,有没有办法避免为游戏插入的两个值(favoritedislike)都被标记为true >? SQLFIDDLE

示例:显示用户 ID 569723 的所有视频游戏偏好

game_id  category_id   game_name               category_name    favorite    dislike
------- ----------- ---------------- ------------- --------- --------
840832 1000 'counter-strike' fps 1 NULL
779343 1000 'call of duty modern warfare' fps 1 NULL
684244 2000 'minecraft' adventure NULL NULL
983565 2000 'assassin\'s creed syndicate'adventure NULL NULL
858168 3000 'need for speed - rivals' racing NULL NULL
819837 4000 'mortal kombat x' fighting NULL NULL
634266 5000 'street fighter v' fighting NULL NULL
<小时/>

最佳答案

您的外键和表总体上存在一些问题:

  • 外键引用的“目标”列必须建立索引,以便 InnoDB 可以快速检查它是否存在等(例如,users 表中的 user_id 是仅主键中的第二列,它必须位于某些索引中的第一列)
  • 在一种情况下 (videogames_categories_bridge.category_id),您尝试引用同一个表中的同一列,但这是没有意义的
  • userscategories 中的主键同时包含名称和 ID,因此它们不会强制执行太多 - 通常 ID 是外键的正确 ID 。根据您定义的方式,多个不同名称可能有相同的 id。

http://sqlfiddle.com/#!9/9e24b - FK 已修改为可工作

关于mysql - 外键约束和桥接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32767502/

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