问题描述
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 个标签,而在其他情况下,可以设置多个标签?
我几乎认为这是糟糕的数据库设计,我应该只为这些单一类型的标签值设置列,而只为多选标签保存标签——在这种情况下,我仍然有一个问题,如何仅过滤特定标签。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)