首页 > 解决方案 > 可以存在于多个模型上的关系的一个或多个模型/表

问题描述

我有一个模型“Wine”和一个模型“Drink”。Wine 和 Drink 都应该有一个类型 (type_id)。

所以数据库应该看起来像这样:

葡萄酒

id, name, type_id, etc.

id, name, type_id, etc.

我的问题是:

我是不是该

  1. 制作模型“DrinkType”和模型“WineType”或
  2. 我应该只使用一种,称为“类型”吗?

酒类

id, name

饮料类型

id, name

类型

id, name, type


nr的数据库示例。1:

葡萄酒

饮料

酒类

饮料类型


nr的数据库示例。2:

葡萄酒

饮料

类型

我正在使用框架“Laravel”并且我知道多态关系。但这是正确的方法吗?https://laravel.com/docs/7.x/eloquent-relationships#one-to-many-polymorphic-relations

我希望我的问题是有道理的,并且有人有一些提示可以解决我的问题:)

标签: phpmysqldatabaselaravelpolymorphism

解决方案


为此,您需要遵循一对一(多态)关系。

葡萄酒型号名称:-葡萄酒

id 
name

饮料型号名称:-饮料

id, 
name,

类型

id - integer
body - text
typeable_id - integer
typeable_type - string

您正在关注正确的一个。https://laravel.com/docs/7.x/eloquent-relationships#one-to-one-polymorphic-relations


推荐阅读