簡體   English   中英

如何在MYSQL中制作用戶隱私表

[英]How to make a User Privacy Table in MYSQL

我正在一個社交網站上工作,在該網站上我有創建群組,事件和朋友列表的想法。 我希望為他的朋友提供用戶隱私,如下所示:

1.用戶可以選擇可以查看其個人信息或不能查看其個人信息的朋友。 2.用戶可以管理哪些人可以看到他的事件和組,哪些人看不到。

我為下面要粘貼的內容設計了一個表結構:

  1. User_location_id
  2. 用戶身份
  3. Allow_friends(用逗號分隔的ID)
  4. Deny_friends(用逗號分隔的ID)
  5. Allow_groups(以逗號分隔的ID)
  6. Deny_groups(以逗號分隔的ID)
  7. Allow_search(州,城市)
  8. 朋友(對某些人可見,對某些人隱藏)(如果為0,則表示我正在允許allow_friends或其他Deny_friends的朋友ID)
  9. 群組(對某些人可見,對某些人隱藏)(如果為0,則表示我正在允許allow_groups中的朋友ID,否則會拒絕Deny_groups)
  10. 隱私類型
  11. Privacy_for_name

是否應該有任何其他有效的結構,並且可以最大程度地減少數據庫命中率並且不增加數據庫強度。

如果要設計數據庫表,則可能需要閱讀有關規范化的信息: http : //en.wikipedia.org/wiki/Database_normalization

存儲用逗號分隔的ID使得更新這些記錄和防止重復變得困難。 我建議您將allow和deny列拆分為單獨的相關表。 這不會使數據庫變得更加密集,因為您仍然只需要一個查詢,而只是意味着您可能必須具有帶有聯接的查詢。

我建議使用兩個(或三個)表,將用戶+組和權限分開。

用戶/組表可以包含特定於(和隔離的)用戶/組的信息(因此用戶的#為1和2),然后可以為“類型”或“類別”添加一個字段,指出是否用戶或組。 如果您為用戶和組存儲的信息足夠不同,則可以為每個存儲單獨的表。

權限表可以包含任何權限,包括列表中#的4-9(我真的不知道10/11的上下文。)該表還可以用於管理組成員身份。 以下是如何構造權限表的示例:

  • permid :任意唯一主鍵auto_increm列
  • asset_cat :資產所屬的類別(或表名稱)
  • asset_id :權限描述的用戶標識,組標識等
  • uid :正在尋求許可的用戶
  • 權限 :uid正在為asset_id請求的權限
  • value :該權限的值


一些示例條目:

//Same as listing 1338 in user 1337's Allow_Friends Field
1002, 'user', '1337', '1338', 'Allow_Friends', 'True'

//Lists 1337 as a member in group # 43
1003, 'group', '43', '1337', 'Member', 'True'

這些只是幫助您入門的一些示例。 讓我知道這是否有幫助,或者您是否需要我澄清一下:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM