首页 > 解决方案 > Laravel:在 2 个模型之间有 2 个数据透视表是可能的吗?

问题描述

在我的项目中,我有 2 个模型:

操作:“交付”、“订购”、“使用”、“损坏”

数据透视表::item_order,item_transaction

这就是我想要实现的目标

  • 有一个事务表来记录对项目所做的操作
  • 如果操作是“订单”,那么它将请求表单保存到 item_order 数据透视表,
  • 否则,如果操作是“交付”、“使用”或“损坏”,它将记录到“item_transaction”数据透视表。

我知道我可以制作另一个名为“订单”的表,但它会破坏只有一个“交易”表的目的,以便更轻松地监控对项目所做的操作。

两个模型之间是否可以有两个不同的数据透视表?我将如何建立关系?

这是我的 数据库结构图像的链接

标签: databaselaravelmany-to-manyrelationshiplaravel-5.7

解决方案


正如评论中所建议的那样,您的item_transaction内容与行相关。由于它只能是操作()之一,因此解决方案可能是将字段设置为可空字段到表中并完全删除表。将它放在那里也可以标记动作是否订购其他东西。actionstransactionstransactions 1:m actionsorder_qtyitem_transactionitem_ordernull


推荐阅读