在这种情况下,非规范化表是否可以接受?

时间:2017-12-16 10:15:25

标签: mysql database database-design database-schema

我希望您对哪种表格结构有所了解。

让我们说这是一张存储nba球员信息的表格。 所以你会得到id, name, team_id等。

但是为了存储玩家的位置(Point Guard,Power Forward,Center等),我应该创建一个单独的Player_Position表格,将Player_ID连接到Position吗?

播放器表:

ID      Name       Team_ID
-------------------------
1    LeBron James    10
2    CJ McCollum     5

Player_Position 表:

Player_ID  Position
-------------------
  1          PG
  1          SF
  1          PF
  2          PG
  2          SG

另一个选项是将PG, SG, SF, PF, C列作为Players表格中的列,以便播放器播放PGSG时,这些字段将为1,其他字段为0

播放器表:

ID     Name          Team_ID   PG  SG  SF  PF  C
-------------------------------------------------
1   LeBron James      10       1   0   1   1   0
2   CJ McCollum       5        1   1   0   0   0

Player至少有1个位置,可以是多个,(可以全部为5个)。 以后不会发明任何新职位,也不会删除任何新职位,只有那些职位。

1 个答案:

答案 0 :(得分:0)

考虑这一栏:

positions SET('PG', 'SG', 'SF', 'PF', 'C') NOT NULL

考虑设置/更改/获取数据的查询。然后阅读文档以查看必须使用SET的扭曲方式。