1

我很难做出这个决定。我有一个模式,我希望特定类别的产品具有该类别的特定值。

我已经进入了 5 张桌子,我只是想知道这是否是正确的做法。

场景:主表:

Element (id, name, category_ID)
Category (id, name)
Characteristic (id, name, unity)

我希望一个类别具有特定数量的特性(即计算机需要具有 cpu、ram、屏幕大小等特性,鼠标需要具有 isCordless、numberOfButtons 等),所以我创建了表Category_has_Characteristic:

Category_has_Characteristic(id_category, id_characteristic)

为了将特定元素值设置为类别中的每个特征,我创建了此表:

Element_has_Characteristic ( id_element, id_Category_has_Characteristic, value)

这是创建表格以具有每个特征的特定元素值的最佳方法吗?

我错过了什么还是这是唯一/最好的方法?

任何评论将不胜感激。

4

1 回答 1

1

This sounds like a classic case of overnormalization. Consider a table:

Category
  id
  name varchar(50)
  isCordless bit
  numberOfButtons int
  ...

This leads to way simpler queries. You only need a many-to-many relation if your characteristics are dynamic. For example, if you're planning to write a control panel that your users can use to add characteristics to a category.

于 2012-06-05T18:41:48.883 回答