2011-05-16 43 views
1

我正在開展個人/樂趣項目。我使用的是CakePHP,但這更多的是數據庫設計問題。用戶應該有多個組?

目前我在我的USERS表中有一個名爲group的字段。我有一個組列表,列出管理員,確認,新等幾個組...

我也有一個NOTIFICATIONS表,我用它來跟蹤不同類型的通知。我想在NOTIFICATIONS表中爲組添加一個字段,其中組來自GROUPS表。

問題是如果我將通知標記爲「已確認」組的一部分,我如何確保「管理員」組中的用戶也可以訪問它。基本上我希望「管理員」能夠訪問「已確認」的所有內容,等等。

1)允許用戶成爲多個組的一部分會更好嗎?所以一個管理員在管理員和確認組中都是?

2)我的代碼中是否應該有一些額外的邏輯。就像我可以傳遞一個「組」的函數一樣,它會告訴我用戶是否可以訪問該組?

3)...其他方法?我在想這個錯嗎?

+1

您可能想詳細說明您的規格。這是爲了訪問以及溝通嗎?用戶/組有哪些用例? – 2011-05-16 15:44:18

回答

2

讓用戶進入多個組並不難。您只需要一個users_groups表,其中包含user_id列和group_id列。

更大的問題是:是否有意義爲您的應用程序做到這一點?做這件事的原因是什麼? 不是這樣做的原因是什麼?

此外,我不確定「確認組」的含義,但這聽起來更像是一個狀態指示器,而不是真正的「組」。但是如果不知道詳細的要求,很難說清楚。


更新:

如果只有管理員將不得不在多個組的可能性,那麼它可能會更好,只允許用戶在一組。然後,爲了表明用戶是否也是管理員,您可能需要具有is_admin指標。當然,管理員仍然必須在一些組(除非你允許用戶在零組),所以你也可以把他們放在「管理員」組。或者,這種情況下,管理員只是某些組的管理員,但不是全部?在這種情況下,您可以擁有一個admins_groups表,其中管理員的user_id和他們管理的組的group_id。同一user_id的多個記錄允許管理員用戶管理非常特定的組。

所以......你的用戶在多個組中是否合理?如果不是現在,這是你將來可能想要的東西嗎?

+2

從技術上講,這應該是'groups_users'來遵循[CakePHP數據庫約定](http://book.cakephp.org/#!/view/903/Model-and-Database-Conventions)用於連接表。 – 2011-05-16 15:38:59

+0

@Jason McCreary:謝謝,我不知道CakePHP的約定。 – FrustratedWithFormsDesigner 2011-05-16 15:40:16

+0

感謝您的意見。我想我真正要問的是。允許用戶在多個組中是否合適,只是爲了讓「管理員」可以訪問與其他組相關的權限。或者應該以不同的方式處理這個問題。 – corsen 2011-05-16 16:49:51

相關問題