繁体   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