0

在允许注册用户创建可由其他注册用户编辑的页面的应用程序中,在 UML 和 SQL 中区分普通用户和页面创建者的正确方法是什么。

在 UML 中,我有

--------  accesible by --------  
| Page |  ------------ |User  |
--------               --------
  |created by            / \
  |                       | 
  |                       |
---------   is a          |
|Creator|------------------
---------

现在,我认为这不是正确的 UML。那么,什么是我试图表达的正确 UML 表示。最终,我想为它创建 SQL 数据库。在那种情况下,数据库模式会是什么样子?

4

2 回答 2

0

在这种情况下,您的角色应该是特定的,意味着角色应该具有不同的访问权限。假设我有三个用户,每个角色都有不同的访问权限。1 Admin 2 Manager 3 User 在这种情况下,管理员可以创建页面并有权编辑页面和用户的所有详细信息,而经理有权创建页面并根据访问权限编辑该页面的一些详细信息。用户只能创建和查看页面,不能编辑页面的详细信息。访问级别应在数据库中定义。

我希望这能帮到您

于 2012-10-31T08:57:41.753 回答
0

与往常一样,您有多种可能性——模型(UML)和代码(SQL 或其他)。

模型 A)就像您在上面描述的模型 B)只有一个用户类,没有创建者。用户是页面中两个关联的目标:“可访问者”和“创建者”

模型之间的区别在于,您可以在模型 A 中区分可以创建页面的用户和不能创建页面的用户。模型 B 只允许区分已经创建页面的用户和尚未创建页面的用户。

两种模型都可能由两种实现方式实现。

代码 1)使用 5 个表:Page、User、Creator、PageToUser、PageToCreator 代码 2)使用 4 个表:Page、User、PageToUserAccessible、PageToUserCreated(可能还有用户中的标志“创建者”)代码 3)使用 3 个表:Page、用户、PageToUser 和 PageToUser 中的“创建”标志(可能加上用户中的标志“创建者”)

知道了?一切都是“正确的” - 这取决于你:)

于 2012-10-30T19:41:37.923 回答