我的系统由User
,Title
,TitleType
,Region
和RegionType
个实体/模型组成。实体的关系如下:
标题 - > {user_id,title_type_id,region_id}
TitleType - > {region_type_id}
地区 - > {region_type_id}
现在,我必须将Organization
实体添加到系统中,以便Title
,TitleType
,Region
和RegionType
实体与组织相关联。组织管理员应创建标题,标题类型,区域和区域类型。因此,我的第一个目的是将关系改为:
标题 - > {user_id,title_type_id,region_id, organization_id }
TitleType - > {title_type_id, organization_id }
地区 - > {region_type_id, organization_id }
RegionType - > {的organization_ID}
这是我案例的最佳解决方案吗?有很多组织ID,他们更难以工作。我不知道这是哪个概念,也不知道是否有更好的解决方案。我在rails上使用ruby,在db上使用postgresql。我能为这个问题做更好的方法吗?
注意:区域,region_types,title_types和标题适用于组织。组织可以创建区域,region_types,title_types和标题。区域不是全球性的,属于组织。
答案 0 :(得分:1)
我认为您不需要将组织ID添加到所有其他表中。如果我理解正确,组织只能拥有 TitleTypes。因此,唯一需要更改的表是TitleTypes。
所以:
用户拥有标题
标题有一个 TitleType (belongs_to)
每个 TitleType 属于组织
标题本身不需要组织ID,它们属于标题类型,属于组织。地区也是如此。如果区域类型属于组织,则区域不需要organization_ids,因为它们属于区域类型。