gpt4 book ai didi

mysql - 架构设计的问题

转载 作者:行者123 更新时间:2023-11-29 21:21:58 25 4
gpt4 key购买 nike

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

Student_detail :将 id 作为 PK 并保留一些属性。
Event :包含有关不同事件的详细信息。 event_no 是 PK。 (大约有32个事件)
Participates_in :是 student_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 个不同的表。
因此,查询长度不断增加。这是好的设计吗?我希望得到这方面的建议。

最佳答案

团队的所有成员都具有平等的成员资格吗?如果一个团队中有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 可能是多余的,除非无需成为团队成员即可参与。

关于mysql - 架构设计的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35681783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com