我有两个表:Players
和Characters
。每个Player
都有最大值。10 Character
s。我正在寻找最好的方法来创建这些表之间的关系。我计划使用外键将Players
中的characters
列与Characters
中的id
连接起来,但我不知道我是否应该在Players
中创建10列,如character1
, character2
, character3
等。
我知道我可以创建列,它的值类型为integer[]
,但是关系呢?
我希望我的问题很清楚,因为我不知道怎样才能解释得更好。
你一定要创建两个表,一个用于玩家,一个用于角色。Players表将使用单独的player_id列或player_name列作为主键。如果选择单独的player_id列,请确保将player_name设置为唯一的。字符表将有一个character_id列,一个player_id或player_name列(取决于玩家的结构),这是一个外键引用到玩家表,最后是一个character_name列。现在,每个字符将在Characters表中代表它自己的行。
您的外键应该在字符表上-引用player_id。在约束中没有办法将其限制为10 -您必须为此编写代码或在调用createcharter的过程中执行检查,该过程将为您执行检查。