设计像 facebook 这样的隐私系统的设计模式是什么。
用户根据他的 friend 组决定分享哪些信息。所有用户信息(email、电话)都存储在数据表中,该数据表只是键=值表。
当前表:
- 用户 - (id)
- 用户数据 -(id、user_id、数据类型、值)
- 友谊 - (user_id, friend_id, friendgroup_id)
- FriendGroup - (user_id, name)
例子:
- X组可以看到phone_1
- Y 组可以看到 phone_2
- 所有组都可以看到 phone_3
可以更改此架构。
最佳答案
您必须为 FriendGroup 创建权限表。 因为您必须收集授予每个 FriendGroup 的权限,同时让组或用户可以更改该权限。
权限(permission_id, friend_group, parameter, visible)
例子:
- 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
关于ruby-on-rails - Facebook 如何处理数据库端的隐私设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4406394/