1

我们有多个类别层次结构,其中类别可以嵌套 N 级深度,并且我们的产品可以属于多个层次结构中的多个类别。我和我的同事在什么是最好的表结构上存在分歧。

他的结构是:

Nodes
---------------------------
NodeId (identity)
ParentNodeId (nullable)
ProductId (nullable)
Description (this is the category or product description)

我的结构是:

Categories
-----------------------------
CategoryId
ParentCategoryId (nullable)
Description

ProductCategories
-----------------
CategoryId
ProductId

两者都会假设也有一个产品表

Products
-------------------
ProductId
ProductDescription
UnitPrice
etc...

所以基本上,他通过在表中添加另一条记录来跟踪每个类别中的产品Nodes,而我会在表中创建一条新记录ProductCategories。他说他的方式对性能更好,这是微软推荐的方式。任何人都可以验证这一点吗?是否有任何性能或维护问题可以让我们选择其中一个?有数百个类别和数万种产品。

谢谢。

4

1 回答 1

0

我个人会出于以下原因选择您的结构:

  1. 它更加规范化,更好地展示了设计的意图。新人会更容易理解。
  2. 由于类别和产品分开保存而不是混合在一起,因此对将来的扩展更好。您可以避免添加仅适用于产品或类别的可为空字段。
  3. 他的设计有更多可以为空的字段,这些字段可能(不一定)影响性能,例如在选择属于某个类别的所有产品时。构建类别树也将更容易,因为您不必检查产品。
于 2013-10-16T04:48:43.133 回答