1

在我的数据库模型中,我想表示一个表 PROPERTY,在其他字段中,应该有一个名为“value”的字段。这个值应该能够包含任何类型:整数、小数、文本、日期等。实现这一点的最佳方法是什么?每种类型都有一个字段(valueInteger、valueDate 等)并且只填充所需的字段 -> 大量空字段?或者可能只存储字符串字段,然后应该将其解析为正确的类型?

除了 PROPERTY 表,我还需要一个 PROPERTY_RANGE 表,其中包含一个 lowerValue 和 upperValue 字段。如果我选择为每种类型设置一个字段,则在此表中,每种支持的类型都需要 2 个字段(下部、上部)。

我还可以考虑使用某种平板继承来区分“值”字段类型(尽管这可能是用霰弹枪杀死苍蝇)。

解决这个问题的最佳方法是什么?

4

1 回答 1

1

FWIW,为了正确性和可维护性,我会使用一个表,该表包含每个可能的属性数据类型一列。这将特别有助于查询不同数据类型的过滤器不同的记录,并将所有值收敛到一个 VARCHAR 字段意味着我们需要在运行时将这些值转换为适当的类型,这可能会很昂贵,具体取决于表的大小.

于 2012-10-19T04:20:59.043 回答