gpt4 book ai didi

MySQL 是否有外键?

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

我有以下三个 MySQL 表,我想知道某个字段是否是外键。

当用户完成 tests 表中的测试时,scores 表中会插入一行,test_id 等于 test_id 来自 tests 表。

但是,用户可能会完成不是来自tests 表的计算机自动生成的测试,当发生这种情况时,test_id 等于'0 ' 未出现在 tests 表中。

这意味着 test_id 不是 scores 表中的外键,对吗?

scores:
score_id(PK, AI), test_id(FK?), module_id(FK)...

tests:
test_id(PK, AI), module_id(FK), user_id(PK), name...

modules:
module_id(PK, AI), name....

最佳答案

在我看来,您应该将该列设置为 tests 表的外键。然后你有几个选择:

  1. 您可以在 tests 表中为那些较差的“计算机生成”测试放置一个假行。这可能具有 0 的值,并且您拥有与现在几乎相同的数据结构。

  2. 您可以使用 TestType 列来区分不同的测试。对于实例,它可能采用值 'Real''Computer-Generated'。然后您将与 tests 表建立外键关系。当测试类型不正确时,它将是 NULL

  3. 您可以在 (2) 上走捷径,只考虑计算机生成的 NULL 值。

我对您的申请了解不多,但我个人会选择 (1) 或 (2)。

关于MySQL 是否有外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25205972/

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