Laravel的混淆点和实现Entity Relationship
Confusing point of Laravel and implementing Entity Relationship
我用了laraveleloquent好久了。当我使用 eloquent 关系时,每一秒都会有一个或多个混淆点决定我必须使用哪种关系(OneToOne、OneToMany、ManyToMany 及其逆...)
据我了解,在laravel中,有OneToMany Polymorphic
关系,在其文档中,实现有明确的方向。 Video
和Post
有很多Comment
。因此,Comment
变形为 Video
或 Post
并且 Video
或 Post
变形为许多 Comment
。我明白了。这是Various type of "one" object
有One type of "many" object
.
的情况
让我们假设.. Chapter
有许多 Section
和 Column
。据我了解,这是相反的情况。这个是 One type of "one" object
有 Various type of "many" object
.
所以,在这一点上,我无法决定我必须做什么。你能为我解释一下你是如何解决这个令人困惑的问题的吗? Laravel关系不能说明全部情况吗?
问题更新.1
我有两个表 Collection
和 Problem
.
从关系的角度来看,Collection
有它的childCollection
和Problem
。
例如,CollectionA
有其 child、Problem1
、CollectionB
、Problem2
、Problem3
和 CollectionC
。这五个 childrens 有它的顺序。
由于 children 在两个不同的 class 中有顺序,我认为我不能将它们分离为单独的 hasMany 关系..
** 为了解决这个问题,我一直在使用以下想法。
Collection
有很多 CollectionItem
.
CollectionItem
morphTo Collection
|Problem
.
这在特定点上找到了,但我不确定这是找到练习..
这似乎是一对简单的 One to Many relationships:
- 一个
Chapter
有很多Section
个
- 一个
Chapter
有很多Column
个
所以,只需定义两个关系:
# Chapter.php
public function sections()
{
return $this->hasMany(Section::class);
}
public function sections()
{
return $this->hasMany(Column::class);
}
当然你也可以在每个子模型上定义reverse of the relationship:
# Section.php
public function chapter()
{
return $this->belongsTo(Chapter::class);
}
# Column.php
public function chapter()
{
return $this->belongsTo(Chapter::class);
}
我用了laraveleloquent好久了。当我使用 eloquent 关系时,每一秒都会有一个或多个混淆点决定我必须使用哪种关系(OneToOne、OneToMany、ManyToMany 及其逆...)
据我了解,在laravel中,有OneToMany Polymorphic
关系,在其文档中,实现有明确的方向。 Video
和Post
有很多Comment
。因此,Comment
变形为 Video
或 Post
并且 Video
或 Post
变形为许多 Comment
。我明白了。这是Various type of "one" object
有One type of "many" object
.
让我们假设.. Chapter
有许多 Section
和 Column
。据我了解,这是相反的情况。这个是 One type of "one" object
有 Various type of "many" object
.
所以,在这一点上,我无法决定我必须做什么。你能为我解释一下你是如何解决这个令人困惑的问题的吗? Laravel关系不能说明全部情况吗?
问题更新.1
我有两个表 Collection
和 Problem
.
从关系的角度来看,Collection
有它的childCollection
和Problem
。
例如,CollectionA
有其 child、Problem1
、CollectionB
、Problem2
、Problem3
和 CollectionC
。这五个 childrens 有它的顺序。
由于 children 在两个不同的 class 中有顺序,我认为我不能将它们分离为单独的 hasMany 关系..
** 为了解决这个问题,我一直在使用以下想法。
Collection
有很多 CollectionItem
.
CollectionItem
morphTo Collection
|Problem
.
这在特定点上找到了,但我不确定这是找到练习..
这似乎是一对简单的 One to Many relationships:
- 一个
Chapter
有很多Section
个 - 一个
Chapter
有很多Column
个
所以,只需定义两个关系:
# Chapter.php
public function sections()
{
return $this->hasMany(Section::class);
}
public function sections()
{
return $this->hasMany(Column::class);
}
当然你也可以在每个子模型上定义reverse of the relationship:
# Section.php
public function chapter()
{
return $this->belongsTo(Chapter::class);
}
# Column.php
public function chapter()
{
return $this->belongsTo(Chapter::class);
}