2011-09-21 39 views
1

我有一個社會的應用程序,有一個user_profile表,典型的標準領域,如如何爲用戶設置架構來授權訪問某些信息?

user_id (unique) 
name 

我想允許用戶在他們之間共享保存在單獨的表中的信息被稱爲info,它具有以下字段:

user_id_fk 
agent_name 
agent_phone 
agent_address 

所以這個想法是,如果我是用戶#1,並且您是用戶#6 - 我可以授權您查看我的info表中的數據。然後,當您查看我的個人資料時,PHP功能將檢查您是否已獲得授權,並顯示一個鏈接到我的信息頁面的按鈕。

我的問題是:什麼是最好的實現方式?

我想到了一些解決方案,但想你的意見:

[1]創建一個新user_profile稱爲info_access,其中將包括包含授權訪問的所有用戶用逗號分隔的字符串。最明顯的缺點是(例如,很難刪除USER_ID如果獲得的信息被撤銷,不歸等)

3,23,14,12,11 

[2]創建一個新表稱爲info_access這樣的字符串的限制,這將是這樣的:

user_id_fk can_access 
6    3    
6    23 
6    14 
6    12 
6    11 

在這種情況下,我會查詢作爲

select * from info_access where user_id_fk = 6

但我不確定如何對PHP函數進行編碼以檢查在訪問授權我查看信息的人的個人資料時是否會看到按鈕。

關於模式/代碼的任何建議?

回答

1

第二種方法是解決問題的最佳方法。然後,您可以查詢info_access表以檢查info_access表中是否存在查看配置文件的用戶標識和查看器的用戶標識的記錄。

相關問題