2009-10-17 46 views
0

我正在開發我的網站的早期版本,並且在我創建生產版本之前,我希望人們對我是否以正確的方式開展工作提出意見。主要目標是允許用戶共享播放列表。我有用戶表(ASP.NET成員資格),播放列表表和權限表。我希望用戶創建播放列表並授予/拒絕給定用戶的訪問權限。我的做法是讓權限表包含一個「pStatus」列,其中0/null = deny,1 = read。 當用戶請求訪問播放列表的權限時,創建者將選擇pStatus枚舉。該列隨後將相應地更改爲收件人。在訪問收件人的個人資料頁面時,將對列進行掃描以檢查收件人有權訪問的所有播放列表,並顯示相關播放列表。 這是一種高效和安全的做事方式嗎?還是依靠一列不夠?基於一列的權限 - 安全嗎?

(NB - 播放列表可以被認爲是類似於Facebook的羣體)

感謝您的任何意見

回答

1

我會在nm關係表中使用某種位掩碼我猜是在User和PlayList之間(即一個名爲UserPlaylist的表,因爲1個用戶可以訪問多於1個播放列表,反之亦然1播放列表可以被超過1個用戶訪問)。

如果您預先定義了所需的權限級別(即0 =無訪問權限,1 =讀取權限,2 =寫入權限等),則可以在UserPlayList表中添加一列代表訪問級別。

因此,UserPlaylist表將有2個外鍵列,其組合應該是唯一的(即將主鍵定義爲2個外鍵列)以及以一位形式保存訪問級別的列/ 整數。

+1

我的權限表本質上是UserPlaylist表,但我有一個額外的PK表(增加int)爲每個記錄。我將刪除該列,並使用User和Playlist的組合作爲PK。 謝謝 – keyboardP

1

所以權限有外鍵的用戶和播放列表。第三列是否有任何理由指定權限級別?這聽起來應該是這樣的:如果在Permission中存在一行,則允許用戶訪問播放列表。

否則,這聽起來不錯。

+0

我可能使用三個設置(無,讀和寫),所以第三列將指定設置。 謝謝 – keyboardP