Pau*_*l M 4 mysql sql database-design many-to-many join
我有一些表可以从多对多表中受益.例如团队表.
团队成员可以在团队中持有多个"职位",所有职位都列在职位数据库表中.以前持有的头寸也存放了这个我有一个单独的表,所以我有
很简单,但现在的关键是团队成员可以属于许多团队.我已经有一个team_to_member查找表.现在问题是如何将一个职位与团队联系起来?一名成员可能是一个团队的团队领导,目前是另一个团队的团队电台人员和新闻官.我如何只是提取每个成员的信息以显示他当前的位置,以及他过去的历史,包括过去的球队.我是否需要添加一个position_to团队表并以某种方式交叉引用,或者我可以将团队添加到成员到职位表?
一切都非常令人困惑,这种正常化.
是的,多对多联结表可以具有其他属性(列).
例如,如果有一个名为PassengerFlight表的表由PassengerID和FlightID键控,则可能会有第三列显示给定航班上给定乘客的状态.两种不同的状态可能被"确认"和"等待列出",每种状态都以某种方式编码.
此外,可能存在三元关系,涉及三个实体的关系,而不仅仅是两个.这些表将有三个外键,它们是关系表的主键.
拥有一个包含列的TeamPositionMember表是完全合法的
Team_Id
Position_Code
Member_Id
Start_Date
End_Date NULLABLE
Run Code Online (Sandbox Code Playgroud)
如果您愿意,还可以使用主键的代理ID列; 否则它是一个3场复合主键.(无论如何,你会想要一个唯一性约束.)
通过这种安排,您可以拥有一组任何职位.团队每个职位可以有零个或多个人.一个人可以为零个或多个团队填补零个或多个职位.
编辑:
如果您想要日期,只需按上图所示进行修改,并将Start_Date添加到PK,以允许同一个人在不同时间保持相同的位置.
| 归档时间: |
|
| 查看次数: |
6478 次 |
| 最近记录: |