示例)构建一个像这样的分层结构的站点:Territory - >帮 - >向导。
这些对象中的每一个都将具有非常接近相同的列(uid,wins,loss,hp等)。用户可以创建区域(不同类型的区域),帮派和向导。巫师可以成为领土的直接孩子。
根据区域类型将所有三个对象存储在具有不同表的单个表中是否有意义?
答案 0 :(得分:2)
不,(在我看来)这样做是没有意义的。它们是不同类型的东西,所以它们应该存储在不同的表中。
如果它们有某些共同点,那么您可以创建一个表,该表使用与正确实体之间的适当外键关系来存储该方面。但它们主要是不同的东西,所以它们应该分开。
例如,地区不能包含其他地区,但它们可以包含帮派。因此,实体在重要方面不同,应分开存储。
答案 1 :(得分:2)
这看起来像是gen-spec设计模式的一个案例,除了由于彼此之间的关系而被组织在一个层次结构中。
已经多次讨论了gen-spec模式。 See previous discussion
一旦有了单个通用表,除了专用表之外,您还可以使用邻接列表方法或嵌套集方法对该表中的层次建模进行建模。在你的情况下,我会使用嵌套集。