我应该如何建模数据库模式以容纳许多依赖列,并且可以灵活地轻松添加新列?

时间:2013-05-08 18:08:28

标签: database-design relational-database

我有一个关系数据库,我将卖家信息存储在一个名为(自然而然)卖家的表中。在该表中,我有一个名为industry的列。我也有很多关于卖家的属性。适用于卖方的属性取决于其行业。平均而言,一个行业只有四个适用的属性。每个行业的最大属性是12个属性(到目前为止)。

目前,我将每个属性表示为Seller表中的一列。我有21个属性,因此在Seller表上有21个相应的列允许null。

该应用程序相当新(3个月),并且该业务在此时请求了6个新属性(总共27个属性)。我猜测将来还会继续要求更多属性。我现在质疑将每个属性作为卖方列的选择。有没有更好的方法在数据库中对此进行建模?

我有人提到有一个名为属性的列。该列的类型为XML。包含属性名称(与行业相关)及其对应值的XML。这是一个好方法吗?

修改 有154个行业。因此,许多行业都有共同的属性。

1 个答案:

答案 0 :(得分:1)

如果属性是行业attr。它属于行业表,否则属于卖家列。如果它是“每个供应商”但“依赖于行业”,您应该为其创建更多表:seller_industry_attributes(每个行业一个表)。

例如,如果您有以下行业:

  • 教育
  • 网络

然后你应该有以下表格:

  • education_attributes
  • web_attributes
例如,

education_attributes表应包含列: seller_id和每个属性一列,所以如果,对于同一个例子,我们有属性:

  • 员工人数
  • 研究课题

然后education_attributes表应该有列:

  • seller_id
  • number_of_employees
  • 受试者