如何在一个表的单个列和第二个表的多个行之间创建关系?

时间:2013-03-18 11:19:20

标签: mysql database foreign-keys relational-database

我有两个表:PlayersCharacters。每个Player都可以有最大值。 10 Character s。我正在寻找创建这些表之间关系的最佳方法。我打算使用外键将characters中的列Players与来自id的{​​{1}}相关联,但我不知道是否应该在{{1}中创建10列每个角色都喜欢CharactersPlayerscharacter1等等?

我知道我可以创建具有character2类型值的列,但那么关系呢?

我希望我的问题很清楚,因为我不知道如何更好地解释它。

2 个答案:

答案 0 :(得分:3)

你绝对应该创建两个表,一个用于玩家,一个用于角色。 Players表将使用单独的player_id列或player_name列作为主键。如果您选择单独的player_id列,请确保将player_name设置为唯一。 Characters表将包含character_id列,player_id或player_name列(取决于玩家的结构),这是对Players表的外键引用,最后是character_name列。现在,每个字符将在Characters表中表示自己的行。

答案 1 :(得分:3)

你的外键应该在字符表上 - 引用player_id。在约束中无法将此值限制为10 - 您必须使用任一代码来执行对createCharacter的过程调用中的检查,这将对您执行检查。