douyou2234 2015-07-15 14:40
浏览 37
已采纳

Laravel 5.1 - 3个表之间的数据透视表

I'm relatively new to Laravel and have been working on it in my internship for the last 3 weeks however now I have a problem.

I have 3 tables: Users, Bids, and Jobs. I want a user to be able to place a bid on the job.

The basic structure of my tables is as follows:

Users:
id | name | email | description

Jobs:
id | title | description

Bids:
id | proposal

The following criteria need to be met:

  1. A user can bid on many jobs, however they can only bid on each job once.
  2. A job can have many bids from many users.
  3. Each bid is only linked to one user and one job.

Example: User 1 makes a proposal of £300 on Job 1. This creates a bid with id 1 and proposal £300. The pivot table will contain the user id(1), the job id(1) and the bid id(1) along with the status which by default will be set to Pending.

I also want the table that links all 3 to have a status. I created one as follows:

bid_job_user:

bid_id | user_id | job_id | status

But the relationships were all wrong so syncing methods etc wouldn't work correctly if I wanted to update a status. Any help is appreciated, even if it is just how I should define my relationships.

I cannot link the user to the job in a table(job_user) as this is already defined elsewhere as a many to many relationship as managers(users) can create many jobs and jobs can be created by many managers.

If you need any more information please ask.

  • 写回答

1条回答 默认 最新

  • douqiang6036 2015-07-15 15:30
    关注

    To create the bid table (As per comments) you could treat it as a intersection entity.

    <!-- User.php -->
    //should recognize user_id,job_id by itself
    public function bidsMade() {
      return $this->belongsToMany('App\Job','bids')->withPivot('status','proposal');
    }
    
    <!-- Job.php -->
    //should recognize user_id,job_id by itself
    public function bidsRecieved() {
      return $this->belongsToMany('App\User','bids')->withPivot('status','proposal');
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程