Laravel:在 2 个模型之间有 2 个数据透视表是可能的吗?
Posted
技术标签:
【中文标题】Laravel:在 2 个模型之间有 2 个数据透视表是可能的吗?【英文标题】:Laravel: Is having 2 pivot tables between 2 models possible? 【发布时间】:2019-07-01 12:21:39 【问题描述】:在我的项目中,我有 2 个模型:
交易
身份证 action_id user_id物品
身份证 姓名 说明操作:'deliver'、'order'、'used'、'spoiled'
数据透视表::item_order、item_transaction
这就是我想要实现的目标
有一个事务表来记录对项目所做的操作 如果 action 是“order”,那么它会将请求表单保存到 item_order 数据透视表中, 否则,如果操作是“交付”、“使用”或“损坏”,它将记录到“item_transaction”数据透视表。
我知道我可以创建另一个名为“订单”的表,但它会破坏只有一个“事务”表以便更轻松地监控对项目执行的操作的目的。
两个模型之间可以有两个不同的数据透视表吗?我将如何建立这种关系?
这是我的图片的链接 Database Structure
【问题讨论】:
将字段order_qty
放入表item_transaction
并将其设置为可为空。仅当操作为order
时才填写。删除表item_order
。
谢谢!我会这样做是为了让事情变得更简单????
【参考方案1】:
根据评论中的建议,您的 item_transaction
与 actions
的 transactions
行相关联。由于它只能是一种操作 (transactions 1:m actions
) 解决方案可能是将order_qty
字段设置为item_transaction
表中的可空字段并完全删除item_order
表。将null
放在那里,它也可以作为标记,无论操作是订购其他东西。
【讨论】:
以上是关于Laravel:在 2 个模型之间有 2 个数据透视表是可能的吗?的主要内容,如果未能解决你的问题,请参考以下文章