2012-10-12 63 views
1

(採用PHP + Mysql)最佳方式爲用戶

我希望有人可以給我一個想法,以處理這種情況的最佳方式設置權限。

我有兩個表,usersforms。用戶表包含用戶名,密碼,名稱等,然後表格表包含各種不同的html表單。

我想基於每個用戶指定用戶有權訪問哪些表單。我正在考慮在用戶表中創建一個'form_allowed'的新字段,然後存儲允許用戶訪問的每個表單的form_id,用逗號分隔。像3,6,8,15

然後,當我想檢查用戶被允許訪問哪些表單,以及他們是否可以訪問請求的表單(等等),我會抓住該字段,爆炸並檢查爲form_id。

這似乎是一個麻煩和無效的方式來做到這一點。有沒有人有更好的主意?

謝謝!

回答

4

創建另一個表,將保存user_idform_id對。這是多種多樣的關係。

向tblUsers:

user_id | name |... 

tblForms

form_id | content | ... 

tblRelation:

user_id | form_id 

因此,你可以簡單地得到單查詢信息:

SELECT * FROM `tblUsers` AS `t` 
JOIN `tblRelation` as `r` ON (t.user_id = r.user_id) 
JOIN `tblForms` as `f` ON (f.form_id = r.form_id) 
+0

這也將使您能夠爲用戶添加和刪除單個表單的權限。這是最常見的做法。 –

+0

非常好,非常感謝。今天回去工作,這是我將採取的路線。乾杯! – Stevie