【发布时间】:2018-02-19 04:19:10
【问题描述】:
我有一个 Laravel 5.4 项目,其中有一些模型:Client、Owner、Employee、Bank strong>(实际上是银行账户,但我选择银行是为了方便命名约定,以便与外键建立关系)。
现在有一些事实:
- 每个客户可以拥有多个银行(银行账户)。
- 每个所有者可以拥有多个银行(银行账户)。
- 每个员工可以拥有多个银行(银行账户)。
- 每个银行(账户)只能有一个 [客户或所有者或员工]
建立表格和关系的最佳方式是什么。 我想到了以下几点:
表格:
- 客户:id、bank_id、其他字段...
- 所有者:id、bank_id、其他字段...
- 员工:id、bank_id、其他字段...
- 银行:id、client_id、owner_id、employee_id、其他字段...
模型关系
- Client hasMany Banks and Bank belogsTo Client [按照 Laravel 的指示完成]
- Owner hasMany Banks and Bank belogsTo Owner
- Employee hasMany Banks and Bank belogsTo Employee
现在在构建银行刀片视图表单时(创建/更新) 我应该有一个下拉菜单,例如belongs_to 字段包含 Client、Owner、Employee 作为选项 - 然后,我可以过滤掉三个表之一来选择 holder的银行帐户来分配它。
缺点:
对于 3 个表之一,每个银行一次只有一个有效的外键,例如client_id = 36,另外两个的值总是 0,例如owner_id = 0 & employee_id = 0)
这是建立关系的最佳方式还是有其他更好的方式?如果可能,请提供银行的刀片视图表。
【问题讨论】:
标签: php mysql laravel model relationship