我是UML建模的新生,想要为情况建模。
我有一个系统,管理员创建角色,用户和文档,它们都存在于数据库中,管理员将为每个文档选择可以操作的用户 这个带角色的文档
问题是我正在尝试仅使用二元关联对其进行建模,如果不可能是什么解决方案? 在屏幕上,您将看到更多情况
您可以看到user_a在doc_1中有角色role_1,在doc_2中有另一个角色 并且user_c在doc_2;)
中没有角色答案 0 :(得分:1)
这里有两个可以解决此问题的解决方案。你应该根据附加条件选择它们(参见注释):
更新(评论后)
这是一个对象图,解释了对象的运行时结构(它基于第二个类图,一个具有关联类而不是n-ry关联):
请参阅评论中的注释。并非Access实例既是类又是关联实例(链接)。这就是为什么它总是有两个关联类的单个实例,在这种情况下只有一个角色。 另一方面,每个用户都可以访问许多文档(0 .. ),每个文档可以被0个或更多用户访问(0 .. )。
答案 1 :(得分:0)
如果用户可以在系统中拥有多个角色,则需要指定在每个具体[User * - * Document]关联中采用哪些角色。如果是这种情况,您将需要:
正常[用户* - *角色]关联,独立于[用户* - *文档]关系,另外
从IBM
忘记属性,在你的情况下:
航班 - >文献
FrequentFlyer - >用户
前程万里(MileageCredit) - >作用
此图表模拟当用户与文档相关时,将有一个Role实例指定[User * - * Document]关系中的具体角色。注意:您还需要[用户* - 1角色]关联(不在图片中),正如我之前在第1点中所说的那样。
如果用户只能拥有一个角色,则不需要[User * - * Document]关系中的关联类,因为该角色是从[User * - 1 Role]关系明确派生的。