我在系统实体之间的关联如下:如何在以下情况下建立关联模型?
商店 供应商 和用户
- 商店可以有很多供应商,
- 供应商可以同时属于多个门店。
- 用户可以拥有多个商店,但是如果其与供应商相关的用户说某个人为该供应商工作,那么该用户的行为会发生变化。
此外,对于商店可以有多个角色。
我尝试过多态关联,但由于用户的行为取决于角色以及他是商店用户还是供应商用户,因此我无法使用该行为。
STI也不能使用,因为大量的列将有所不同。任何想法都会有所帮助。
我在系统实体之间的关联如下:如何在以下情况下建立关联模型?
商店 供应商 和用户
此外,对于商店可以有多个角色。
我尝试过多态关联,但由于用户的行为取决于角色以及他是商店用户还是供应商用户,因此我无法使用该行为。
STI也不能使用,因为大量的列将有所不同。任何想法都会有所帮助。
如果我理解你的要求准确地要建模:
这将需要一个has_and_belongs_to_many
供应商和sto之间的关系回覆。它还需要用户和供应商/商店之间的多态关联。你应该应该能够使用多态关联。这样,您可以通过检查其角色和关联来管理每个用户的系统行为。例如,如果您创建了一个名为userable
的多态关联,则可以使用用户user.userable
来获取供应商或商店,并且vendor.users
或store.users
可以访问这些实例的用户。
为了您的用户模型,关于这条线在你的问题:
“但如果谁是与供应商的用户,说一个人谁该供应商的工作,那么该用户的行为变化”
我会在我的用户表中添加一个名为user_type
的列,并创建一些用户类型,您可以使用这些类型来过滤和分配权限。 user_type
列可以是字符串字段,并且明确命名为related
和not_related
,简单地是1或2的整数,或者更多,或者甚至是布尔字段(如果没有太多user_types
)。
这怎么可能“供应商可以属于多个商店”? – Thorin
属于只适用于当你存储其他表ID作为外键 – Thorin
你需要多对多的商店和供应商之间的关系? – Thorin