gpt4 book ai didi

sql - 一个外键可以引用多个表吗?

转载 作者:行者123 更新时间:2023-12-04 15:44:49 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Possible to do a MySQL foreign key to one of two possible tables?

(5 个回答)


7年前关闭。




所以我在数据库设计方面做了一些练习,出现了一个我不知道如何纠正的问题。

我在这方面很新,所以我不是最好的,但它就在这里。

所以我想创建两个不同的表,一个叫做 Team,一个叫做 Player。这些表彼此大不相同。

然后我想要另一个名为 Challenge 的表,我想引用 Team 或 Player。

基本上有比赛,他们要么单独参加,要么作为一个团队参加。我想要一个外键来引用团队,如果它是一个团队挑战,或者如果它是个人的玩家。

我无法将这两个表合并,因为它们包含非常不同的元素。

我只是有点困惑如何去做。我可以只有一个外键,它将引用一个表或另一个表。或者我应该有两个,一个为空。

或者我可以在 Team 和 Player 中添加另一个 ID key 。然后在 Challenge 中,如果一个新的 Type 键表示它是一个组,它会引用 Team,如果是个人,它会引用 Player。

同样,这方面还很新,所以希望我说得通。

最佳答案

您可以在挑战中添加两列:PlayerID 和 TeamID,它们都可以为 NULL。

PlayerID references Player.id
TeamID references Team.id

例如,一个挑战有一个玩家:
  PlayerID  = 14
TeamID = NULL

请注意,引用的列(Player.id 和 Team.id)必须定义为 NOT NULL,因为它们是从表挑战中引用的

关于sql - 一个外键可以引用多个表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20505447/

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