在同一模型之间有2对一关系

时间:2016-11-14 15:35:05

标签: laravel laravel-5 eloquent

我有一个用户模型&销售模式。用户可以是商家或客户。

销售时,销售属于商家,也属于客户。

我认为我可以将促销商品给予商家& amp; sale_id并在模型中创建2种不同的关系。

对我来说感觉不对。所以我的问题是有更好的方法来解决这个问题吗?我处于发展的早期阶段。我不介意稍微改变数据库。

我正在使用laravel 5.3

1 个答案:

答案 0 :(得分:1)

它不是一对一的,它的many-to-many关系和sales表应该是一个数据透视表。关系通常如下所示:

class User extends Authenticatable
{
    public function customers()
    {
        return $this->belongsToMany('App\User', 'sales', 'customer_id', 'merchant_id');
    }

其中customer_idmerchant_id是指向id表中users的外键。

如果您使用sales表执行大量操作,请继续使用Sale模型作为此数据透视表。