Php 如何设置数据库关系,使一个类别可以属于多个父类别

Php 如何设置数据库关系,使一个类别可以属于多个父类别,php,eloquent,laravel-5,Php,Eloquent,Laravel 5,我目前正在使用LaravelPHP框架来构建一个电子商务网站 该网站将有很多产品的分类,其中有100-150个,可能会更多,因为将有一个后端网站添加更多 有时,一个类别必须出现在网站上的多个父类别中 我试图实现的类别关系: 一个类别可以有多个子类别。 一个类别可以有多个父类别。 我很困惑如何在拉雷维尔内部正确地建立这两种关系中的第二种 所以我的问题是: 如何设置数据库结构和模型关系,以便一个类别可以属于许多其他类别,而不会在categories表中出现任何重复 我想知道我需要哪些表/列,以及需要

我目前正在使用LaravelPHP框架来构建一个电子商务网站

该网站将有很多产品的分类,其中有100-150个,可能会更多,因为将有一个后端网站添加更多

有时,一个类别必须出现在网站上的多个父类别中

我试图实现的类别关系:

一个类别可以有多个子类别。 一个类别可以有多个父类别。 我很困惑如何在拉雷维尔内部正确地建立这两种关系中的第二种

所以我的问题是:

如何设置数据库结构和模型关系,以便一个类别可以属于许多其他类别,而不会在categories表中出现任何重复

我想知道我需要哪些表/列,以及需要在模型中设置哪些类型的关系

这种模式似乎有效:

我有一个名为category_category and relation的表:

  public function parentCategories()
  {
    return $this->belongsToMany('TottonTimber\Category', 'category_category', 'category_id', 'parent_id');
  }

  public function childCategories()
  {
    return $this->belongsToMany('TottonTimber\Category', 'category_category', 'parent_id', 'category_id');
  }

然而,这似乎不是正确的做法,因为在多对多关系中,两者都属于多对多关系。这两种模型确实与另一种模型有一种归属关系。例如,在经典的用户和角色场景中,用户属于多个角色,角色属于多个用户。。所以,正如你们所看到的,“属于”双方的关系。在这里,由于您对关系的两端都有相同的模型,所以您必须为两个关系定义都添加“belongsto”。这似乎很好。

我看不出您的设置有任何问题。这看起来很好,正如你提到的一样。你在寻找实现同样目标的其他方法吗?我对Laravel框架不熟悉,对我来说,这样做似乎是作弊,可能会在项目的后期遇到问题,我希望childCategories有很多关系,但我似乎找不到一种方法使这种关系发挥作用,然而,这种没有真正意义的关系似乎确实起了作用,并给了我期望的结果。在多对多对多关系中。这两种模型确实与另一种模型有一种归属关系。例如,在经典的用户和角色场景中,用户属于多个角色,角色属于多个用户。。所以,正如你们所看到的,“属于”双方的关系。在这里,由于您对关系的两端都有相同的模型,所以您必须为两个关系定义都添加“belongsto”。那很好,看起来。。以防万一,你想检查一下laravel提供的多对多关系示例。谢谢你的帮助,这已经为我解决了所有问题,我会+1你,但我想我必须拥有超过1天的帐户,所以我会在可能的时候提供。