我正在拼车服务,所以我有以下表格架构
user
,cars
,user_car
(数据透视表,它还有其他字段,例如plate_number),因此我可以添加许多汽车,用户可以从我们已经添加的汽车中选择他的汽车并提供附加信息。那辆车将是他的车。
现在我还有另一个表ride
,该表也引用了id
的引用cars_user
,我已经建立了cars
和users
之间的关系。但是Ride
和car_user
模型之间的关系是什么,因为car_user
可以用于许多游乐设施?
答案 0 :(得分:0)
确保数据透视表<connectionStrings>
<add name="DbConnectionString"
providerName="System.Data.SqlClient"
connectionString="Data Source=xxx.database.windows.net;Initial Catalog=xyz;Integrated Security=False;User ID=xyz;Password=pass;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False" />
</connectionStrings>
具有主键列,其外观应类似于:
user_car
为该表实现id, user_id, car_id
模型。
然后在您的UserCar
模型上将此模型附加一个关系
Ride
然后,您还可以使用分配来查看该数据透视表的游乐设施
在您的public function user_car(){
return belongsTo('\App\UserCar', 'user_car_id', 'id');
}
模型上,您可以看到以下内容:
UserCar
您现在可以从public function rides(){
return hasMany('\App\Ride', 'user_car_id', 'id');
}
和User
模型中像其他任何模型一样引用它。
我个人将调用此表并为其他模型建模,例如Car
,car_assignations
,但这是您的选择。
答案 1 :(得分:0)
您应该为3个桌子的汽车,用户定义枢轴,在每三个模型中创建2个与其他两个桌子的关系 因此您的数据透视表包含三列,分别为user_id,car_id,ride_id 例如您的用户模型是:
public function car() {
return $this->belongsToMany('car', 'user_car_ride');
}
public function ride() {
return $this->belongsToMany('ride', 'user_car_ride');
}
user_car_ride是您的数据透视表名称