Mysql 添加产品属性

Mysql 添加产品属性,mysql,sql,database,left-join,opencart,Mysql,Sql,Database,Left Join,Opencart,在目录中列出产品时,每个产品都有一些通用属性,如mrp、价格、sku、产品描述等,适用于所有产品 但很少有特定于产品的属性,例如,T恤衫可以有颜色和尺寸,笔记本电脑可以有内存、分辨率、处理器速度,手机可以有内存、相机分辨率和操作系统 示例中的上述每个属性都是特定于产品的,并且非常重要 我相信,借鉴opencart电子商务,我复制了他们的数据库,做了一些更改(以满足我的需要),现在就是这样 产品 其思想是将产品信息/属性(适用于第一段中描述的所有产品)记录到产品表中的产品表中 属性 然后是属

在目录中列出产品时,每个产品都有一些通用属性,如mrp、价格、sku、产品描述等,适用于所有产品

但很少有特定于产品的属性,例如,T恤衫可以有颜色和尺寸,笔记本电脑可以有内存、分辨率、处理器速度,手机可以有内存、相机分辨率和操作系统

示例中的上述每个属性都是特定于产品的,并且非常重要

我相信,借鉴opencart电子商务,我复制了他们的数据库,做了一些更改(以满足我的需要),现在就是这样

产品

其思想是将产品信息/属性(适用于第一段中描述的所有产品)记录到产品表中的产品表中

属性

然后是属性表,我们在其中存储属性名称,如分辨率、内存、颜色、大小、处理器速度等

产品属性

这是我们保存product表的productId、attributes表的attributeId和attributeValue的属性值的表。分辨率=15000像素(属性值),内存=500gb(属性值),颜色=蓝色(属性值)

到目前为止,我们所有三个表都有记录,这些记录现在需要显示在产品详细信息页面上,有点像这样

如果没有弄错的话,Opencart使用一个left-join语句组合其产品、属性和产品属性,在其产品详细信息页面上显示产品,这就是我需要做的


如何使用left join语句显示产品、属性和产品属性以显示产品及其属性?请注意,可能有一些产品不需要额外的属性。

不幸的是,使用左连接进行完全递归是SQL不擅长的事情之一。事实上,我很确定这是不可能的,至少在标准SQL中是不可能的

一个不错的选择是使用简单的继承,将主“products表”作为基类,并扩展其他不同的表类型(例如“手机”或“t恤”)。在这种情况下,通过使用不同的新表并使所有表都具有products表的外键,可以很容易地执行扩展


然后,如果无法区分产品表中的产品类型,请添加“种类”或“类型”属性,并在应用程序中根据该属性执行左连接(如果需要)。

不幸的是,使用左连接进行完全递归是SQL不擅长的事情之一。事实上,我很确定这是不可能的,至少在标准SQL中是不可能的

一个不错的选择是使用简单的继承,将主“products表”作为基类,并扩展其他不同的表类型(例如“手机”或“t恤”)。在这种情况下,通过使用不同的新表并使所有表都具有products表的外键,可以很容易地执行扩展


然后,如果您无法在产品表中区分产品类型,请添加“种类”或“类型”属性,并在应用程序中根据该属性执行左连接(如果需要)。

可能是我弄错了,但我看到opencart做了,可能是我弄错了,但我看到opencart做了,可能是我弄错了,但我看到opencart做了,通过组合PHP和SQL,您可以轻松完成这项任务,但我不知道是否可以仅通过SQL或SQL来完成not@AbdoAdel,它是用php编写的,我想我差不多完成了,需要测试解决方案,我会尽快在这里发布我的答案。通过结合php和SQL,你可以轻松完成这项任务,但我真的不知道是否只有通过SQL或SQL才能做到这一点not@AbdoAdel,它是用php编写的,我想我差不多完成了,需要测试解决方案,我会尽快在这里发布我的答案。通过组合php和SQL,你可以轻松地完成这项任务,但我不知道是否可以只通过SQL或not@AbdoAdel,它是用php编写的,我想我差不多完成了,需要测试解决方案,我会尽快在这里发布我的答案