0

大多数人不推荐 EAV,我知道其中的一些原因。然而,EAV 方法和这种方法有什么区别?

台式电脑

id, price, description

连接

id, name (possible values: LAN, USB, HDMI, ..., all all about 10)

连接_计算机

comp_id, conn_id

还是那也是 EAV?如果是,那么标准化的替代方案是什么?

考虑一下,我想做这样的搜索:

所有具有 LAN 和 HDMI 连接的计算机。在这种情况下,我需要 1 个连接/过滤器属性,当它作为 1 个列/属性时,搜索会很容易,但我会有很多 NULL 值。

有什么建议怎么做吗?

4

1 回答 1

0

你的例子是一个简单的多对多。在EAV中,属性名称是列的,而不是列的名称。例如,

computer: {computer_id, attr_name, attr_value}

insert into computer (computer_id, attr_name, attr_value)
values
  (1, 'connection', 'HDMI')
, (1, 'connection', 'USB')
, (1, 'memory', '2 GB')
;

将是一种 EAV 方法。

这是您为 RDBMS 中的 EAV 方法(灵活性)支付的价格示例。

于 2012-08-06T22:02:52.270 回答