【发布时间】:2016-08-04 10:44:13
【问题描述】:
假设我有 N 家公司 (N
A公司描述了他们水果的以下特性:type、field1、field2、
B 公司 - type、field1、field3。
对于 A 公司和字段 type,有 3 个可能的值:1、2 和 3。对于 B 公司,它们是 1、2 和 4。对于字段 type,我最多有 10 个可能的值,总共大约 20 个可能的字段和大量的苹果属性条目。我的桌子应该是什么样子?
版本 1:
为 type 字段创建一个枚举,合并所有可能的值 (1,2,3,4)。使用所有可能的字段(type、field1、field2、field3)创建表 apples。
版本 2:
为每个公司的type 字段创建单独的枚举。为每个公司的苹果属性创建单独的表。
版本 3: 与第 2 版相同,但将通用属性移至下一个表。
版本 4:
Vesion 1 + table type_config 说明每个公司允许使用哪些 type 值。它将具有company_id 字段(fk 到某个表),以及具有可能值/或 fk 到该值的字段。
所有这些对我来说似乎都很糟糕。现实生活中最好的解决方案是什么?
【问题讨论】:
标签: sql database postgresql database-design