在Laravel的ORM中使用3NF

时间:2018-09-11 19:02:57

标签: laravel eloquent entity-relationship 3nf

我正在尝试构建一个简单的Laravel应用程序。我的数据模型如下所示:

ENTITIES: 
Project, Requirements, ProjectRequirementStatus

RELATIONSHIPS:
A Project has many Requirements
A requirement belongs to many Projects as a "ProjectRequirement"
A "ProjectRequirement" has one ProjectRequirementStatus
A ProjectRequirementStatus belongs to many Projects

TABLES:
projects
requirements
project_requirements
project_requirement_statuses

MODELS:
Project, Requirements, ProjectRequirementStatus

我的问题是:

为关系类创建模型是否不合适?在这种情况下,我将需要创建一个ProjectRequirement模型并定义与ProjectRequirementStatus类的关系。

我很困惑,因为我的大多数数据透视表都包含了两个表的ID,这两个表以多对多的方式连接在一起,并且通常没有其他关系。

我在想这个错误的方式吗?关于何时创建模型以及何时不需要模型,是否有“最佳实践”?

1 个答案:

答案 0 :(得分:0)

在Laravel中使用3NF,您不必为关系建立模型。 Laravel提供了Eloquent ORM,它将提供关系而无需建立数据透视表模型。

雄辩的ORM还为您提供了一种访问数据透视表上的数据的方法。 (Defining The Inverse Of The Relationship