架构设计的问题

时间:2016-02-28 11:17:28

标签: mysql entity-relationship

我正在设计一个具有以下实体的数据库:

Student_detail:将id作为PK并保留一些属性 Event:有关于不同事件的详细信息。 event_no是PK。 (大约有32个事件)
Participates_instudent_detailevent之间的关系,其PK均为FK。
Team_with:这是student_detail表与其自身的关系,它有8个participant列,一个team_id列,一个for_event_no列(FK到event_no) 。所有participant列都是student_detail.id的FK。

本栏的一行表示特定事件的团队 数字8因为,所有赛事的最大球队规模是8 事件具有可变数量的允许团队规模 我设计了team_with表,以避免为不同的事件创建30个不同的表 因此,查询长度正在增加。这是好设计吗?我想为此提出建议。

1 个答案:

答案 0 :(得分:0)

团队中的所有成员都有平等的会员资格吗?如果团队中有8个固定角色,我会同意你的设计。如果没有,我建议:

teams (team_id PK, for_event_no FK)
team_members (team_id PK/FK, student_detail_id PK/FK)

但是,强制最大团队规模为8可能会更加困难。我不认为这是一个重大问题,因为你说不同的事件允许不同的团队规模,所以8的限制可以纳入该机制,但它已经实现。

参加活动与参与活动的团队成员之间有什么区别? EventStudent_detail之间已经存在关联 - 直接在您的Team_with中,并且在我的建议中可以传递。 Participates_in可能是多余的,除非参与是可能的,而不是团队成员。