6

什麼是設計模式來設計像Facebook的隱私系統。Facebook如何處理數據庫端的隱私設置?

用戶根據他的朋友組決定分享哪些信息。所有用戶信息(電子郵件,電話)都存儲在數據表中,只是鍵=值表。

當前表:

  • 用戶 - (ID)
  • 的UserData - (ID,USER_ID,數據類型,值)
  • 友誼 - (USER_ID,friend_id,friendgroup_id)
  • FriendGroup - ( USER_ID,名稱)

實施例:

  • X組可以看到PHONE_1
  • 組Y可以看到phone_2
  • 所有組可以看到phone_3

這種模式是可以改變的。

+0

programmers.stackexchange.com將是一個更好的論壇這個問題。我會建議將它移到那裏,因爲它們傾向於處理這樣的設計問題。 – DMCS 2012-02-12 21:09:28

回答

2

您必須爲FriendGroup製作權限表。 因爲您必須收集給每個FriendGroup的權限,同時讓組或用戶可以更改該權限。

Prmissions(permission_id,friend_group,參數,可見光)

實施例:

  • X基團可以看到PHONE_1
  • Y基團可以看到phone_2
  • 所有基團可以看到phone_3
(1,x,phone_1,true) 
(1,Y,phone_2,true) 
(1,x,phone_3,true) 
(1,Y,phone_3,true) 

您可以更看到有關ACL訪問以下鏈接:

Database model with users, roles and rights

A Role-Based Access Control (RBAC) system for PHP

Patterns for building social network type applications?

0

您可以與所有字段添加一列名的權限一樣

PHONE_NUMBER並phone_number_permission,photo和photo_permission並使用值0,1 ,在許可列中有2,3個

permission rights 
0. Not show to anyone 
1. Show to friends 
2. Show friends of friends 
3. Show to groups and who are your friends 

您必須在個人資料頁面上查看數據時管理此權限。

如果用戶==朋友和權限== 1的數據顯示