2011-10-07 50 views
0

如果您爲用戶設計數據庫表格,將所有具有不同角色的用戶填充爲長期可維護性,數據庫編程和Web開發的最佳選擇。以這種情況爲例,我被要求爲論壇設計一個數據庫&經理希望所有用戶只有一張表Admin,Moderator,,Guest註冊,Guest角色。我認爲這不是一個好主意(我無法找到理由,只是內心的感覺)。我怎麼能說服管理員有很多表像管理&另一個人都是一個好主意。您也可以採用類似的事情大本營網站,這裏是層次結構:如何爲不同角色的用戶維護單一表格

Company 
- Admin 
- Employees 
- Clients 
- Managers 

即使他們只是角色不同,具有不同的表是好的嗎?

+1

如果你沒有任何推理,你是否至少要求你的上司的推理,而不是盲目地試圖說服他們呢? –

+0

@ Mr.Disappointment接受了答案。我應該也要求上級 – Deeptechtons

回答

2

針對所有用戶的單個表格一定是最容易管理和編碼的表格。只需定義一個用戶類型的列或一個記錄給定用戶具有哪些權限的權限表。分開表格將是一個主要的編碼麻煩,從概念上講,它們大部分並不完全相同?例如。 admin只是一個擁有更多權限的主持人,同樣適用於用戶vs主持人等。

+0

接受和投票了(SO告訴我等待7分鐘) – Deeptechtons

1

你的老闆可能是對的 - 像這樣的結構的最佳設計應該是有一個單獨的'用戶'表,它有一列稱爲'角色'(假設每個員工只能有一個角色)。

您的設計意味着如果添加了新的員工類型,則必須將新的表添加到數據庫中,而在上面給出的示例中,您只需要添加一行數據到你的'角色'表中。

2

這一切都取決於,你需要走開並找出答案。它關於實體的屬性。

您可能希望爲所有用戶提供一個表格,您將在其中存儲每個用戶共有的所有屬性。在User表中,您還可以存儲將User s與存儲類別特定信息的其他表相關聯的類別屬性。這些其他'類別'表格明顯具有User表格的foriegn鍵。

如果沒有進行適當的需求收集和分析以開發良好的軟件和數據庫,我無法告訴您正確的答案。

有關爲什麼要用這種方式構建數據庫的更多信息,請參閱研究Third Normal Form和其他級別的數據規範化。

+0

+1類別/角色表。這是抽象的方式。如果OP尚不清楚,則可以通過這種方式爲每個用戶分配多個類別/角色。 –

+0

+1爲正常化步驟做 – Deeptechtons

相關問題