【发布时间】:2014-10-07 09:58:51
【问题描述】:
我从头到尾阅读了 Eloquent 文档,并浏览了许多不同的教程(包括几个小时的 nettuts)。我有一些与 Eloquent 模型相关的基本数据库设计问题。如果有人可以帮助我理解,我会很高兴。
所以这个数据库有用户、合作伙伴和事件
Users
---------
id
userName
firstName
lastName
Partners
---------
id
user_id
firstName
lastName
Events
---------
id
user_id
partner_id
description
所以对于这个问题来说,这是一个非常基本的布局。显然,每个表中都会放置额外的字段来提供更多信息(包括时间戳等)。
每个用户可以有多个合作伙伴 每个合作伙伴只有一个用户 每个合作伙伴都有很多活动
有了这个基本布局,我需要知道我是否走在正确的轨道上,尤其是事件表。有时我需要查看与用户关联的所有最近事件,并从合作伙伴表中提取数据(如他们的名字和姓氏)。
所以这是我的关系理解..
用户有很多合作伙伴
合作伙伴有很多活动
事件 belongsTo User & belongsTo Partner
此设置是否允许我进行简单的有说服力的通话?
以下是我理解的模型:
用户
class Users extends Eloquent {
protected $table = 'Users';
public $timestamps = true;
public function Partners()
{
return $this->hasMany('Partners', 'user_id');
}
public function Events()
{
return $this->hasManyThrough('Events', 'Partners');
}
}
合作伙伴
class Partners extends Eloquent {
protected $table = 'Partners';
public $timestamps = true;
public function Partners()
{
return $this->belongsTo('Users', 'id');
}
public function Events()
{
return $this->hasMany('Events', 'id');
}
}
活动
class Events extends Eloquent {
protected $table = 'Events';
public $timestamps = true;
public function Users()
{
return $this->belongsTo('Users', 'id');
}
public function Partners()
{
return $this->belongsTo('Partners', 'id');
}
}
【问题讨论】: