[SQL ] 文章觀看權限,欄位設計

看板Database作者 (momo哭了)時間12年前 (2013/06/05 22:24), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
假設有 [會員資料表] MemberTable ID 會員編號 Name 會員暱稱 Level 會員等級 (分成 A B C D) 四種 然後 [文章資料表] ArticleTable ID 文章編號 Title 文章標題 Content 文章內文 如果想要限制各文章的觀看權限 欄位該怎設計呢? 1. 想法一 文章資料表,再增加四個欄位 型態 Level_A (bit) 若為1 則等級A可觀看 Level_B (bit) 若為1 則等級B可觀看 Level_C (bit) 若為1 則等級C可觀看 Level_D (bit) 若為1 則等級D可觀看 2. 想法二 再增加一張資料表,儲存各文章ID以及開放給ABCD權限 [文章觀看權限資料表] ArticleLevel 欄位有 ID 文章代碼 Level 觀看權限 例如目前有 ID 1、2、3 三篇文章 文章1 開放A、B 文章2 開放A、B、C、D 文章3 開放C、D 那ArticleLevel 這張的資料表目前裡面資料就有 [1,A] [1,B] [2,A] [2,B] [2,C] [2,D] [3,C] [3,D] 這八筆資料,會員觀看時就能根據自己會員等級去join符合自己權限的表。 結論: 哪一種做法會比較恰當呢? 感覺做法二還要多浪費一張表去儲存,但可以依據SQL語法去join即可 至於做法一在程式中還必須根據bit值去寫一些額外的程式碼來判斷 不曉得哪一種方法比較好呢? 或是有其他設計方法 接觸資料庫的經驗還不是那麼資深,希望可以指教一下 謝謝各位。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.113.62

06/06 00:43, , 1F
個人覺得如果你的LEVEL是固定四個那方法一處理起來會比較
06/06 00:43, 1F

06/06 00:45, , 2F
便,另外如果你的權限是有階層概念,那或許可以利用level>X
06/06 00:45, 2F
文章代碼(AID): #1HhqekW3 (Database)