【发布时间】:2013-03-03 12:51:33
【问题描述】:
我正在编写一个小游戏,需要一个代表玩家和比赛的数据库。
一个玩家有一个名字、一个玩家ID和一个等级。 一场比赛有一个 ID 和两个玩家。
播放器
- id (bigint)
- 名称(字符串)
- 玩家ID(字符串)
- 排名(整数)
匹配
- id (bigint)
- 匹配ID(字符串)
- playerOne(玩家)
- playerTwo(玩家)
最终,我想在 Player 中建立“匹配”关系,但我不明白的一点是如何让一个实体具有两个相同类型的实体,我应该使用什么类型的关系?
我尝试过使用一对一关系,但它创建的唯一条件是个问题。
欢迎提出任何想法。
干杯。
西里尔
【问题讨论】:
-
找出关系的一个好方法是大声说话。在您的情况下,您应该说“一个玩家可以玩多场比赛”和“一场比赛可以有多个玩家”,翻译成
ManyToMany。如果是OneToOne,你会说“一个玩家只能玩一场比赛”和“一场比赛只能包括一名球员”(除非你将多个OneToOne添加到Player,但这并不灵活)。跨度>
标签: symfony doctrine entity-relationship database-schema