gpt4 book ai didi

MYSQL 外键设置

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

摘要:表 A 有一行包含引用表 B 中的 ID 的整数列表。

为什么不在表 B 中创建一个引用表 A 的列?因为表 B 中的项目是可重用的,并且适用于表 A 中的许多行。

具体示例:教育软件,由类(class)和行项目组成。每节课都包含许多行项目,而每个行项目又在许多类(class)中使用。

这种多对多链接是一项常见任务,我可能一直都做错了。我过去完成的最简单的方法是让表 A 包含一个带有分隔列表的 varchar,在代码中解释该列表,然后运行另一个查询以从表 B 中获取所需的信息。

还有更优雅的方式吗?将 SET 数据类型的功能与外键索引相结合的某种方式?

最佳答案

对于多对多关系,您将使用 3 个表:

表格 类(class):
列:ln_idln_lesson_name

表格 LineItem
列:li_idli_line_detail

和关系表 LineOfLesson
列:ls_lesson_id(引用 Lesson 表中的 id)、ls_line_item_id(引用 LineItem 表中的 id)

通过这种方式,通过查询三个表,您可以获得使用特定行的类(class)或构成特定类(class)的行。

旁注:在关系表中,两个 id 一起将成为表的自然主键。

此外,如果有有关关系的其他信息,也可以在此处添加,例如,您可以添加添加订单项的时间。

关于MYSQL 外键设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47680707/

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