我目前正在为电商平台的产品部分设计数据库结构,需要设计一种能够销售无限种不同类型产品和无限个不同属性的方法。
例如,笔记本电脑的属性可能包括内存、屏幕尺寸、重量等,书籍的属性则可能包括作者、ISBN、出版社等。
看起来EAV结构可能是最合适的。
- 选择一个产品
- 产品归属于属性集合
- 属性集合包含属性x和y
- 属性x为日期时间数据类型(值存储在attribute_values_datetime表中)
- 属性y为整数数据类型(值存储在attribute_values_int表中)
- 每个属性定义都指示了其数据类型(例如,x具有列类型->日期时间)
假设以上内容,我是否可以将选择与attribute_values_datetime表连接以获取正确的数据,而无需获取结果集并构建第二个查询(因为已知表格)?这种类型的查询构建会有很大的性能损失还是下面的更合适(虽然功能较少)
- 选择一个产品
- 产品归属于属性集合
- 属性集合包含属性x和y
- 属性x为日期时间数据类型,但在attribute_values表中存储为TEXT
- 属性y为整数数据类型,但在attribute_values表中存储为TEXT