Laravel数据库设计多级类别与产品详情表

Amr*_*ero 1 php mysql database laravel eloquent

我正在尝试使用产品详细信息表在多级类别和子类别之间建立关系。

首先我有类别表:

+----+----------+
| id | name     |
+----+----------+
| 1  | vehicles |
+----+----------+
Run Code Online (Sandbox Code Playgroud)

我为每个类别都有单独的表,例如category_cars表:

+----+-----------+---------+-------+
| id | parent_id | mileage | motor |
+----+-----------+---------+-------+
| 1  | 1         | 1000    | 1600  |
+----+-----------+---------+-------+
Run Code Online (Sandbox Code Playgroud)

产品表:

+----+-------------+-------+
| id | category_id | title |
+----+-------------+-------+
| 1  | 1           | 1000  |
+----+-------------+-------+
Run Code Online (Sandbox Code Playgroud)

基本上产品表中的category_id就是category_carsid

当我创建产品时,我在产品表中设置它的标题,然后将产品的其他属性添加到category_cars表中,例如里程电机...

那么,如果我需要创建车辆的子类别,例如:汽车,在这种情况下我不知道在哪里创建产品。

我想要实现的是拥有多级类别,例如 9 个静态父类别和动态创建的子类别

以及基于该产品的产品属性,例如:汽车或摩托车。能够为每种产品类型提供单独的数据(属性)。

每个产品都有一个全局的默认列,例如名称、价格,并且每个产品都需要根据其类型拥有额外的列。

所以重点是通过这种方式获得产品:

product =>
    [
        name = myproduct
        price = 200
        category [
            id = 1
            name = vehicles
        ]
        product details [
            milage = 1000
            motor = 1600
            ...
        ]
        ....
    ]
Run Code Online (Sandbox Code Playgroud)

并显示某个类别的所有产品,无论是主类别还是子类别。

我不知道如何在这些之间建立联系。逻辑本身对我来说太复杂了。

那么我怎样才能做到这一点呢?

小智 5

这个模型被命名为EVA

实体值属性

我以前做过这个,我会与你分享我的解决方案

  • 类别表(id、title、parent_id)
  • 属性表(id、标题)
  • 产品表(id,标题,价格,category_id,..)
  • 产品属性表(产品 ID、属性 ID、值)

如果你想根据类别创建属性,你也会创建这个表:

  • 类别_属性(类别_id,属性_id)