【发布时间】:2021-11-02 07:39:22
【问题描述】:
我处于一种奇怪的情况,我不清楚我应该如何定义模型之间的关系。我想知道专家对我应该如何设计这种关系的意见。
假设我有 3 张桌子:
- 用户(ID、姓名、电子邮件、密码...等)
- 标签(id、user_id、name、created_at...等)
- 联系人(身份证、姓名、电子邮件、出生日期、电话...等)
一个用户可以有很多标签($this->hasMany(Tag::class) - 一对多关系,对吧?)
标签属于用户($this->belongsTo(User::class) - 属于关系,对吗?)
一个用户有很多联系人并且联系人属于很多用户(多对多关系,对吗?)。
这里我想我需要另一个中间表contact_user。
一个标签可以有很多联系人,而联系人也可以有很多标签(同样,多对多关系?)。
在这里,我需要一个中间表contact_tag。
现在,我的疑问是……这是使用 contact_user 和 contact_tag 表创建关系的最佳方法吗?
我要访问
- users()->contacts()
- 标签()->联系人()
- Users()->tags()
但在未来(以防万一,如果我可能需要它),我可能想要访问类似的关系。
- 联系人()->用户()
- 联系人()->标签()
请给我你的意见,假设以上 3 个表,你将如何设计你的关系并访问我在最后提到的关系?
或者您认为我创建contact_user 和contact_tag 表的方法是访问关系背后数据的一种很好且有效的方法?
【问题讨论】:
标签: laravel many-to-many eloquent-relationship