【问题标题】:How can I organize this set of data into a mysql database?如何将这组数据组织到mysql数据库中?
【发布时间】:2014-05-05 15:34:31
【问题描述】:

我已经有一段时间没有做任何创建数据库的工作了,所以我想知道是否有人可以帮助我组织一些数据。这就是我所拥有的:

  • (X) 团队
    • (X) 玩家
      • (1) 名称
      • (X) 可打位置(任何球队的任何球员都可以打位置)
      • (X) 球员经理(可以管理任何球队的任何球员)
      • (X) 球员训练师(可以训练任何球队的任何球员)
      • (X) 球员老师(可以教任何球队的任何球员)
        • (1) 主题
        • (1) 教学年限

理想情况下,我会将它放入一个简单的 MySQL 数据库中,但如果有其他方式/媒介来组织它,请告诉我,我愿意接受任何和所有建议。

【问题讨论】:

标签: mysql database database-schema


【解决方案1】:

这里是粗略设计:(您可能需要根据需要修改 db)

tblTeams
------------------------------
team_id    | int    | primary key
team_name  | varchar| not null

tblPositions
-----------------------------
position_id| int    | primary key
pos_name   | varchar|

tblPlayers
------------------------------
player_id  | int    | primary key
player_name| varchar
team_id    | int    | foreign key tblTeams(team_id)

tblManagers
-----------------------------
manager_id | int    | primary key
name       | varchar

tblManager_mapping
-----------------------------
id         | int    | primary key
manager_id | int    | foreign key tblManagers(manager_id)
player_id  | int    | foreign key tblPlayers(player_id)

tblSubjects 
----------------------------
sub_id     | int    | primary key
sub_name   | varchar

tblTeachers
-----------------------------
teacher_id | int    | primary key
name       | varchar

tblTeacher_player_mapping
-----------------------------
id         | int    | primary key
teacher_id | int    | foreign key tblTeachers(teacher_id)
player_id  | int    | foreign key tblPlayers(player_id)

tblTeacher_subject_mapping
-----------------------------
id         | int    | primary key
teacher_id | int    | foreign key tblTeachers(teacher_id)
sub_id     | int    | foreign key tblSubjects(sub_id)
teaching_since| date   

编辑: 添加了新表,因为您澄清了一名球员可以有多个位置。 (也从tblPlayers 中删除了position_id

tblPlayers_position
-----------------------------
mapping_id | int    | primary key
player_id  | int    | foreign key tblPlayers(player_id)
position_id| int    | foreign key tblPositions(position_id)

【讨论】:

  • 不确定您是否完全了解我的数据,每个球员对一支球队来说都是独一无二的,但位置、经理、教师和训练员并不是一名球员独有的,一名球员可能有多个职位、经理、教师和培训师。此外,每个玩家都有一个独特的名字,每个老师都有一个独特的学科和年份(我知道这在现实生活中没有意义)。不过,这确实给了我一个很好的注视点,所以谢谢你。我希望有更少的表,但我可能只需要一个对象表和一个映射表。
  • 来自您的评论:每个球员在一支球队中都是独一无二的“是的,我做到了。” 但职位、经理、教师和教练并不是一名球员独有的,一名球员可能有多个职位、经理、教师和教练“其中,我更正了职位,请参阅更新的答案。”跨度>
  • 每个球员都有一个独特的名字,每个老师都有一个独特的学科和年份(我知道这在现实生活中没有意义)“这限制了你可以申请我猜你这边:)”。 这确实给了我一个很好的凝视点,所以谢谢你。 “不客气。” 我希望少一些桌子,但我可能只需要一个对象桌子和每个都有一个映射表。“更少的表会导致数据库设计的规范化很差,并且在编码时会出现很多问题。
猜你喜欢
  • 2011-09-02
  • 1970-01-01
  • 2014-04-05
  • 1970-01-01
  • 2020-04-28
  • 1970-01-01
  • 2018-01-31
  • 2012-04-28
  • 2021-09-28
相关资源
最近更新 更多