我想了解您对采用哪种表结构的意见。
假设这是一个存储 nba 球员信息的表。
所以你会有id、name、team_id
等。
但是为了存储球员的比赛位置(控球后卫、大前锋、中锋等),我应该创建一个单独的 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
表中的列,这样如果玩家玩PG
code> 和 SG
,这些字段将为 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
玩家
至少有 1 个位置,可以是多个(可以是全部 5 个)。
以后不会发明新职位,也不会删除任何职位,只有这 5 个职位。
最佳答案
考虑这一列:
positions SET('PG', 'SG', 'SF', 'PF', 'C') NOT NULL
考虑设置/更改/获取数据的查询。然后阅读文档以了解您必须使用 SET
的扭曲方式。
关于mysql - 在这种情况下,非规范化表是可接受的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47844577/