【问题标题】:Laravel: Is having 2 pivot tables between 2 models possible?Laravel:在 2 个模型之间有 2 个数据透视表是可能的吗?
【发布时间】: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
  • 谢谢!我会这样做是为了让事情变得更简单????

标签: database laravel many-to-many relationship laravel-5.7


【解决方案1】:

根据评论中的建议,您的 item_transactionactionstransactions 行相关联。由于它只能是一种操作 (transactions 1:m actions) 解决方案可能是将order_qty 字段设置为item_transaction 表中的可空字段并完全删除item_order 表。将null 放在那里,它也可以作为标记,无论操作是订购其他东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2016-06-14
    • 2019-02-25
    • 2012-01-10
    • 2015-09-10
    相关资源
    最近更新 更多