2011-09-28 56 views
1

我想听听,如果它是更好地保持论坛的类别和子类在同一个表或在两个独立的表意见......存储论坛子类在同一个表或在一个单独的表

让我们说你有一个表ForumCategories。通过添加在同一个表中引用PK Id的ColumnIdIdId,您可以轻松地将主要类别和子类别保留在同一个表中。

或者,您可以创建一个单独的表ForumSubCategories,并使该表上的Id成为引用ForumCategories表的PK Id列的FK。

这两种解决方案都可以工作,但每种解决方案的优缺点是什么?

显然,这是一个可以适用于许多其他方案我无法想出匆忙更好的措辞更通用的问题......

+0

你预期会有多少个关卡?如果它超过2个,你可能会沿着平行线路走下去,但如果它只有2个,那么分开的表格就简单多了。 –

+0

我在考虑2时,我问,但讨论超过两个场景是多余的欢迎... –

回答

2

我想不出使用2个表的好处。使用2个表将限制你到2级树。如果将事物看作对象,那么子类别实际上只是类别对象。所以把它们放在同一张桌子上。 1表结构将更简单地设计和开发查询。

1

如果您肯定知道您的论坛将有只有2个级别的类别,然后有2个表格是合理的。

虽然将类别存储在一张表中并带有外键,但它基本上允许您存储具有无限级别的类别树。

0

如果它们是相同的实体(类别),则可以链接到它自己。父母对于父母ID会有一个空值,或者它可以链接到它自己。这将您限制为只有一个级别,除非您有第二个表来处理多对多可能的关系。

他们必须具有相同的字段,否则你将有一个或另一个类型的不必要的字段。单独的表格是为什么你会这样做,因为它们不一样。

这是员工表的典型表现。主管是另一个员工记录。