首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一个表中的对象之间映射关系

在同一个表中的对象之间映射关系
EN

Stack Overflow用户
提问于 2009-06-14 18:03:16
回答 2查看 312关注 0票数 1

我遇到了一个设计问题;在一个项目中,我有三个表:联盟、球员和一个关联表LeagueToPlayers,它将前两者之间的多个连接映射到多个连接(因为一个球员可以同时在两个或更多联盟中比赛):

代码语言:javascript
复制
League        Players              LeagueToPlayers
Id Name       Id Alias             LeagueId  PlayerId
=--------     ------------         ----------------
1  League A   1  Longcat           1        1
2  League B   2  Leeroy Jenkins    1        2
3  League C   3  xyz               2        1
4  League D   4  qw3rty            2        3
              5  Myrkgrav          3        2
                                   4        1
  (...)           (...)            4        3
                                   5        1

                                     (...)

我的问题是,我现在必须将玩家映射到玩家关系。从我的角度来看,可以做两件事:要么在Player表中引入一个额外的字段(映射另一个PlayerId) -这是一个非常糟糕的选择,因为这将是一个1..*关系-或者创建另一个关联表(不是很喜欢这个想法,但我猜没有其他方法)。

我想听听你对这个问题的看法...有什么好主意吗?

向您致敬,哈尔

编辑:正如评论中提到的,这是一个比喻。"Player“表中的对象类型变化很大(想想200种不同的类型),它们确实必须以这种方式映射。玩家表中的对象可以彼此引用,因为它们最终参与了相同的过程,并且同样,它们彼此相关。此连接绝对是1..*

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-14 18:28:36

如果我必须在你假设离开后维护你的数据库,我会祈祷你使用另一个从玩家到玩家的关联表-为了良好的规范化实践,一致性和易于维护。

这个解决方案也更灵活,如果您出于任何原因需要扩展模型,它可能会让您处于更好的位置。

票数 1
EN

Stack Overflow用户

发布于 2009-06-14 18:09:07

如果它是1:*,则将它放在*侧(例如。层次结构的子行上的parent_id )。

如果是**,则使用另一个相关表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/993356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档