我正在创建一个用于存储摔跤事件的数据库,但在如何构建数据库方面遇到了困难。感谢任何人的帮助。
我有下表:
tblPeople 将包含我所有的摔跤手。
tblPeople
- personId
- personName
#eg: "211", "Dean Ambrose"
tblTeams 将包含特定标签团队
tblTeams
- teamId
- teamName
#eg: "13", "Shield"
tblPeopleInTeams 将人员与团队联系起来
tblPeopleInTeams
- peopleInTeamsId
- teamId
- peopleId
#eg: "1", "13", "211"
tblMatches 将包含比赛详细信息并需要反射(reflect)所涉及的人员或团队
我不确定如何构建 tblMatches 以便它可以引用一个人或一个团队。一个例子是,一场比赛可以有“Dean Ambrose”或“Shield”作为竞争对手。
我可以做:
tblMatches
- matchId
- peopleId
- teamId
#eg: "412", "211", NULL (for Dean Ambrose)
#eg: "412", NULL, "13" (for Shield)
但要使用此功能,我只需填充其中一个字段,并在应用程序中使用条件逻辑来确定条目类型。我想有更好的方法来做到这一点,但我想不出如何做。请问有什么想法吗?
谢谢乔丹。
最佳答案
您可以使用generalization pattern in database design .
拥有一个名为 wreSTLer 的个人和团队的基表,具有 1:0 关系。
像这样的:
为两个竞争对手之间设计的比赛。
对于多个竞争对手:
关于database-design - 数据库结构 - 来自多个表的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20674722/