Laravel Morph to Many tags with tag type

问题描述

我有一个 Laravel 应用程序,其中包含以下表格:

ingredients
batches
containers

一种配料有多个批次,每批次由 1 个或多个容器组成。

我想成为表来使用通用标签表和另一个我称为可标记的连接表来标记这些和其他表。

标签表如下所示:

id
tag_type
name

标记/连接表如下所示:

id
tag_id
taggable_type  // The Model type,i.e. App\Models\(Container | Batch | Ingredient)
taggable_id // The Model ID

现在需要注意的是,并非所有标签都是通用的。

标签表看起来像这样:

id        tag_type         name
1         batch-type       food-grade
2         batch-type       cosmetic-grade
3         batch-type       pharmaceutical-grade
4         customer         jones
5         customer         anderson
6         ingredient-type  powder
7         ingredient-type  liquid
8         ingredient       expirable
9         ingredient       kosher

我应该只能将成分 tag_type 标签设置为成分模型。

我应该只能将批处理类型的 tag_type 标签设置为批处理模型。

我应该能够将客户标签类型设置为任一模型或任何其他模型。

现在,一个批次只能有 1 个批次类型的标签,但可以有无数其他类型的标签

Laravel PHP 函数 morphToMany 将为我提供分配给模型的所有标签的列表。

如何只获取和更新特定类型的标签,在某些情况下,在任何时候只应设置 1 个 tag_type 中的 1 个标签,而在其他情况下,可以设置多个标签

对于每种类型的标签都有一个标签表会更好吗?我宁愿使用 1。

我几乎认为这是糟糕的数据库设计,我应该只为这些单一类型的标签值设置列,而只为多选标签保存标签——在这种情况下,我仍然有一个问题,如何仅过滤特定标签

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)