gpt4 book ai didi

mysql - 关系数据库设计外键

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

我有表类型,其中有许多等级和许多颜色。我在 gradestype_id 中放置了一个外键,在 colors 中也放置了相同的外键。我有第三个表,名为 item,其中包含 gradecolor

我的问题是,如何确保从 item 返回到 types 的数据的完整性。

例如:

Type:
0 sometype1
1 sometype2

grades:
0 somegrade 0 (points to sometype1)

color:
0 red 0 (points to sometype1)

item:
0 item1 0 0 (points to somegrade, red - which points to sometype1)

如何确保不会出现颜色等级正确但类型不正确的情况?

如果其中一个外键引用了正确的类型而另一个外键引用了正确的类型,又会怎样?

在我看来,一定有更好的方法来建模,有人可以帮忙吗?

最佳答案

由于 colorgrade 都引用 types,因此您可以让 item 涉及所有三个 id 值,并使用它们自己的 id 和 type_id 引用这两个表。由于外键约束将共享相同的 type_id,因此不可能引用不同类型的等级和颜色。

表格中最少的列是:

types: type_id 
[no foreign key constraints]
grades: grade_id, type_id
[type_id references types.type_id]
colors: color_id, type_id
[type_id references types.type_id]
items: item_id, type_id, grade_id, color_id
[ (type_id, grade_id) should reference grades as one key
,(type_id, color_id) should reference colors as one key
, type_id would reference types but that should not need enforced with a constraint.
]

关于mysql - 关系数据库设计外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30221383/

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