首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模型开发选择

模型开发选择
EN

Stack Overflow用户
提问于 2016-10-18 06:29:41
回答 1查看 25关注 0票数 1

让我们说,我想开发一个游戏(类似RTS,经济导向),在其中玩家,以及人工智能,可以拥有几乎每一个游戏中的对象。例如:玩家拥有一片土地和一些建筑;其他玩家,或者AI也可以在这块土地上拥有一些建筑,或者,其他人也可以在这块土地上拥有整个区域,并将其中的一部分出售给其他人。可动对象可以是可移动的,也可以是不可移动的,但它们都有共同的属性,如所有者、所有权、世界和弦等。Django模型中最适合这种描述的DB结构是什么?

  • Owner_Table -(一对多)- PossesableObject_Table
  • PossesableObject_Table -(多对多)- PossesableObject_Table (例如,与陆地相连的建筑)

  • Owner_Table -(一对多)- PossesableObjectType_Table (每种可能的对象的表)
  • PossesableObjectType_Table -(一对多)- PossesableObjectType_Table (用于上述类型的 (连接)
EN

回答 1

Stack Overflow用户

发布于 2016-10-18 06:37:47

你应该问的问题如下:

  1. A最多可以链接到1或多个(多个) B吗?
  2. B最多可以链接到1或多个A吗?

如果A可以链接到多个B,B可以链接到多个A,那么您需要一个多到多的链接。

如果A最多可以链接到1B,B最多可以链接到多个A,则需要一个一对多的链接,其中链接列位于表A中。

如果A最多可以链接到1B,B最多可以链接到1A,则需要一对一的链接。此时,您应该考虑是否可以将它们连接到一个表中,尽管从其他考虑因素来看,这可能是不可能的,也可能是好的。

在您的例子中,您会问自己一个问题:一个PossessableObject最多只能链接到其他一个PossessableObject或许多其他PossessableObject吗?或者换句话说:一个PossessableObject最多只能被其他一个PossessableObject或许多其他PossessableObject拥有吗?如果答案最多为1,则使用一对多的链接,如果答案是多的,则使用多到多的链接。

另外,关于每种可能类型的对象的PossesableObject_Table问题:我认为最好将它们的共同点放在一个表中,然后指定类型。而不是为具有对象的唯一属性的每种类型的对象创建一个独立的表,并将它们连接起来,但是您的方法也会工作。这取决于您有多少种不同的类型,以及您的发现最容易使用的是什么。记住:只要是有效的,它是好的。

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

https://stackoverflow.com/questions/40101049

复制
相关文章

相似问题

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