【发布时间】:2018-07-04 09:07:40
【问题描述】:
我正在努力实现以下目标: 我正在尝试为类似网站的电子商务设置数据库,并且我有一个 Products 表。每个产品可能有几个 SpecificationsHeader(类似于每个规范组的“标题”),“在”这个 SpecificationsHeader 下可能有许多规范(这些又像“标题”,像“尺寸”),对于这些规范中的每一个,应分配一个值,如“XXL”。我面临的主要困难是使关系正确,因为我希望它们都可以重用。
示例产品 1:
产品:iPhone
SpecificationHeader:'CPU & RAM'
规格:'CPU 速度' - SpecificationValue:'1.4GHz'
规格:'Ram size' - SpecificationValue:'2GB'
...
SpecificationHeader:'相机'
规格:“相机分辨率” - SpecificationValue:“12MP”
示例产品 2:(可能与上述某些值相同或可能完全不同)
产品:三星
SpecificationHeader:'CPU & RAM'
规格:'CPU 速度' - SpecificationValue:'3GHz'
规格:'Ram size' - SpecificationValue:'4GB'
规格:'4G' - SpecificationValue:'是'
...
SpecificationHeader:“网络”
规范:'Something' - SpecificationValue:'somevalue'
我尝试了几个数据透视表,但我显然做错了,因为我管理的最好的方法是获取标题和规范,但没有获取值。 我最新的方法是这样的:
但是所有知道在做什么的人都会发现它非常愚蠢。 所以, 理想的解决方案是: 获取产品会带来一个规范 - 规范值对,分组在规范标题下。
任何帮助将不胜感激!
【问题讨论】:
-
第一眼看到,你的表命名让人很难理解你的ERD,正确的表名是
attributeGroupsattributesvaluesvaluesattributeValuesproducts和productAtrribueValue
标签: php laravel eloquent many-to-many pivot