【发布时间】:2011-10-24 14:58:51
【问题描述】:
这只是一个数据库概念问题:以下模型对于 EAV 的优缺点是什么?
模型 1:
TABLE: attribute_value
======================================
| id | fk_id | attribute | value |
======================================
| 1 | 10 | FName | John |
| 2 | 10 | Lname | Doe |
| 3 | 55 | FName | Bob |
| 4 | 55 | Lname | Smith |
--------------------------------------
模型 2:
TABLE: attribute
==================
| id | attribute |
==================
| 1 | FName |
| 2 | Lname |
------------------
TABLE: value
=====================================
| id | attribute_id | fk_id | value |
=====================================
| 1 | 1 | 10 | John |
| 2 | 2 | 10 | Doe |
| 3 | 1 | 55 | Bob |
| 4 | 2 | 55 | Smith |
-------------------------------------
我看到模型 2 的一个好处是 attribute 不包含重复项。
【问题讨论】:
-
缺点:EAV 真的很难优化。一段时间后,您将陷入无法编写的查询中,因此它们可以快速运行。
标签: mysql database database-design entity-attribute-value