2012-10-29 29 views
0

在允許註冊用戶創建可由其他註冊用戶編輯的頁面的應用程序中,區分普通用戶和頁面創建者的正確方法是什麼,在UML和SQL中都是如此。在UML和SQL中實現一個類的特殊情況

在UML中,我有

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

現在,我不認爲這是正確的UML。那麼,我想表達什麼是正確的UML表示。最後,我想創建相同的SQL數據庫。那樣的話,Database Schema會是什麼樣子?

+0

其他註冊用戶也可以創建頁面或他們只是授權編輯的細節? – amitesh

+0

@amitesh所有用戶都可以創建一個頁面。但是,如果用戶創建一個頁面,那麼他將在該頁面上擁有一些管理權限,例如哪些其他用戶可以編輯該頁面。 – Ankit

回答

0

與往常一樣,您有多種可能性 - 對於模型(UML)和代碼(SQL或其他)。模型B)像你上面描述的那樣 模型B)只有一個用戶類,沒有創建者。用戶是來自頁面的兩個關聯的目標:'accessible by'和'created by'

模型之間的區別在於,您可以區分可以創建頁面的用戶和不能在模型A中創建頁面的用戶。模型B僅允許區分已創建頁面的用戶和沒有創建頁面的用戶。

這兩種模型都可以通過兩種實現來實現。

代碼1)使用5個表:頁面,用戶,創建者,PageToUser,PageToCreator 代碼2)使用4個表:頁面,用戶,PageToUserAccessible,PageToUserCreated(以及可能的標誌在 '用戶創建者') 代碼3)在PageToUser中使用3個表格:頁面,用戶,PageToUser和一個「已創建」的標誌(可能還有用戶中的一個標誌「創建者」)

明白了嗎?一切都是'正確的' - 這取決於你:)

0

在這種情況下,你的角色應該是特定的意思是角色應該與不同的訪問不同。 假設我有三個用戶,每個角色有不同的訪問權限。 1 Admin 2管理員 3用戶 在這種情況下,管理員可以創建頁面並有權編輯頁面和用戶的所有詳細信息,而管理員可以訪問創建頁面並根據訪問權限編輯該頁面的一些細節。 用戶只能訪問創建並查看頁面,不編輯頁面的詳細信息。 應該在數據庫中定義訪問級別。

我希望這會幫助你