我已经浏览了几十个 Eloquent 问题,但是这些例子通常很容易掌握。例如,一个用户有一个电话或一个类别有很多帖子。
我正在尝试存储产品功能并在它们之间建立关系,同时保持数据库尽可能接近规范化,否则很容易将每个组合及其数据存储在一行中。
考虑一个产品,它可以具有许多特征(材料、尺寸、重量、颜色等)。分配给产品的每个特征只能有一个值,例如,材料是木材。
为了避免重复条目,我将功能和值保存在单独的表中。因为例如 Wood 可以被 Material 和 Texture 使用。
这是我的数据库结构:
feature
- id
- name ( E.g. Material )
feature_value
- id
- value ( E.g. Wood, must be unique )
feature_value_combination
- id
- id_feature
- id_value
product_feature
- id
- id_product
- id_combination
Run Code Online (Sandbox Code Playgroud)
这样我也可以将它们分组并防止重复。但是我很难理解这些之间的关系,因为很多关系都可以工作。我的问题是:
feature value属于一个组合,也有一个组合,同时属于一个特征名称和一个产品,而且一个产品也可以有一个特征,一个值,一个组合。这里的一切似乎都混乱了。对澄清这一点的任何帮助表示赞赏。
我设法设置了基本关系,但代价是创建 5 个模型,即使是数据透视表也是如此。
楷模:
现在我可以使用以下方法获取产品及其功能数据: …