database - Laravel:在 2 个模型之间有 2 个数据透视表是可能的吗?
问题描述
在我的项目中,我有 2 个模型:
交易
- ID
- action_id
- 用户身份
项目
- ID
- 姓名
- 描述
操作:“交付”、“订购”、“使用”、“损坏”
数据透视表::item_order,item_transaction
这就是我想要实现的目标
- 有一个事务表来记录对项目所做的操作
- 如果操作是“订单”,那么它将请求表单保存到 item_order 数据透视表,
- 否则,如果操作是“交付”、“使用”或“损坏”,它将记录到“item_transaction”数据透视表。
我知道我可以制作另一个名为“订单”的表,但它会破坏只有一个“交易”表的目的,以便更轻松地监控对项目所做的操作。
两个模型之间是否可以有两个不同的数据透视表?我将如何建立关系?
这是我的 数据库结构图像的链接
解决方案
正如评论中所建议的那样,您的item_transaction
内容与行相关。由于它只能是操作()之一,因此解决方案可能是将字段设置为可空字段到表中并完全删除表。将它放在那里也可以标记动作是否订购其他东西。actions
transactions
transactions 1:m actions
order_qty
item_transaction
item_order
null
推荐阅读
- node.js - 全局安装 Angular cli 时出错
- azure-devops - Azure DevOps 管道“正在等待来自代理的控制台输出......”
- c++ - 这种无锁 dlist 插入是否安全?
- javascript - 有什么方法可以从 Firestore 中的数组更新特定索引
- corda - AppServiceHub 中的方法 jdbcSession() 是否在每次调用时都会创建一个新会话?
- javascript - 围绕圆形路径生成形状
- git - 复制没有历史记录的 git 存储库
- javascript - 在 JavaScript 中将 .mp4 链接转换为 BLOB
- java - 将对象添加到具有两种类型的通用列表
- c# - 在 IIS 上上传文件时 ASP.NET Core API 500 内部服务器错误