Facebook 如何处理数据库端的隐私设置?
像facebook这样的隐私系统的设计模式是什么?
用户根据他的朋友组决定分享哪些信息。所有用户信息(电子邮件、电话)都存储在数据表中,即键=值表。
当前表:
- User - (id)
- UserData - (id, user_id, datatype, value)
- Friendship - (user_id,friend_id,friendgroup_id)
- FriendGroup - (user_id, name)
示例:
- X 组可以看到phone_1
- Y 组可以看到phone_2
- 所有组都可以请参阅phone_3
此架构可以更改。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您必须为 FriendGroup 制作权限表。
因为您必须收集授予每个 FriendGroup 的权限,同时使组或用户可以更改该权限。
Prmissions(permission_id,friend_group,parameter,visible)
示例:
您可以通过以下链接了解有关 ACL 的更多信息:
包含用户、角色和权限的数据库模型权限
基于角色的访问控制(RBAC) PHP 系统
构建社交网络类型应用程序的模式?
You will have to make permissions table for FriendGroup.
In that you have to gather permission given to each FriendGroup while making group or user can change that permission.
Prmissions(permission_id, friend_group, parameter, visible)
Example:
You can more see about ACL following links:
Database model with users, roles and rights
A Role-Based Access Control (RBAC) system for PHP
Patterns for building social network type applications?
我创建了一个名为隐私设置的 gem,它可以帮助将简单的隐私设置集成到 Rails 应用程序中。查看:https://github.com/xuanchien/privacy_setting
I have created a gem called Privacy setting that can help to integrate simple privacy setting to Rails application. Check it out: https://github.com/xuanchien/privacy_setting
您需要一个基于角色的权限管理系统。查看 CanCan 或 声明性授权 gems。
You want a role-based rights management system. Take a look at the CanCan or DeclarativeAuthorization gems.
您可以添加列名称权限,其中包含所有字段,如
电话号码和电话号码权限、照片和照片权限,并在权限列中使用值 0、1、2、3,
您必须在个人资料页面上的查看数据上管理此权限。
如果用户 == 朋友且权限 == 1 显示数据
you can add a column name permission with all fields like
phone_number and phone_number_permission, photo and photo_permission and use value 0,1,2,3 in permission column
you have to manage this permission on view data on profile page.
if user == friend and permission == 1 show data