数据库模型和性能

Pau*_*lus 2 php sql database model

我正在使用自构建的数据库模型.该模型是为网上商店应用程序构建的.这是它的样子:

首先,我有一张桌子供我的产品使用.这只包含id和articlenr等一般数据,对于所有产品属性(如名称,价格等)我已经为每种类型制作了单独的表,所以我有以下表格:

product_att_varchar
product_att_decimal
product_att_int
product_att_select
product_att_text
product_att_date
Run Code Online (Sandbox Code Playgroud)

这些表通过关系表procuct_att_relational相关联

我的问题是这个结构的性能,如果我想要特定产品的所有属性,如果必须使用这么多的连接,它会非常慢.

有没有人有这个解决方案???

谢谢

Qua*_*noi 5

该模型被称为EAV(实体 - 属性 - 值)并且具有其缺点和益处.

好处是它非常灵活,可以轻松扩展.如果您具有非常大量的非常稀疏的属性,在设计时无法预测属性(例如,用户提供的)或很少使用的属性,则可能很有用.

缺点是性能和无法同时索引多个属性.但是,如果您的数据库系统允许索引视图(如SQL Server)或多个表的集群存储(如Oracle),那么通过使用这些技术可以提高性能.

但是,将所有属性存储在一个记录中仍然会更快.