让我们说,我想开发一个游戏(类似RTS,经济导向),在其中玩家,以及人工智能,可以拥有几乎每一个游戏中的对象。例如:玩家拥有一片土地和一些建筑;其他玩家,或者AI也可以在这块土地上拥有一些建筑,或者,其他人也可以在这块土地上拥有整个区域,并将其中的一部分出售给其他人。可动对象可以是可移动的,也可以是不可移动的,但它们都有共同的属性,如所有者、所有权、世界和弦等。Django模型中最适合这种描述的DB结构是什么?
或
发布于 2016-10-18 06:37:47
你应该问的问题如下:
如果A可以链接到多个B,B可以链接到多个A,那么您需要一个多到多的链接。
如果A最多可以链接到1B,B最多可以链接到多个A,则需要一个一对多的链接,其中链接列位于表A中。
如果A最多可以链接到1B,B最多可以链接到1A,则需要一对一的链接。此时,您应该考虑是否可以将它们连接到一个表中,尽管从其他考虑因素来看,这可能是不可能的,也可能是好的。
在您的例子中,您会问自己一个问题:一个PossessableObject最多只能链接到其他一个PossessableObject或许多其他PossessableObject吗?或者换句话说:一个PossessableObject最多只能被其他一个PossessableObject或许多其他PossessableObject拥有吗?如果答案最多为1,则使用一对多的链接,如果答案是多的,则使用多到多的链接。
另外,关于每种可能类型的对象的PossesableObject_Table问题:我认为最好将它们的共同点放在一个表中,然后指定类型。而不是为具有对象的唯一属性的每种类型的对象创建一个独立的表,并将它们连接起来,但是您的方法也会工作。这取决于您有多少种不同的类型,以及您的发现最容易使用的是什么。记住:只要是有效的,它是好的。
https://stackoverflow.com/questions/40101049
复制相似问题