【发布时间】:2011-05-26 23:52:06
【问题描述】:
您能告诉我如何将不同类型的属性值存储为 EAV 吗?
我现在看到 3 个选项。
- 要存储在一个表中的不同字段中,例如: entity_id attribute_id string_value numberic_value date_value。
- 将不同类型属性的值存储在不同的表中,例如string_attribute_values、numeric_attribute_values、date_attribute_values。
- 将所有类型的值存储为 VARCHAR,但这种变体似乎不合适,因为很难进行过滤,例如,通过数值(它们将作为字符串进行比较),例如,让我们在字段中输入字母应该只有数字。
我想我现在需要:字符串、数字(整数)和日期类型,但以后可能会出现其他类型。
谢谢。
【问题讨论】:
-
选项 3 在排序方面也会给您带来问题,更不用说必须将每个值从 varchar 转换为正确类型的性能损失。我们正在尝试我们的第一个 EAV 设计,我们将采用选项 2
-
我也尝试使用选项 2。
标签: database-design entity-attribute-value