ruby-on-rails - Facebook 如何处理数据库端的隐私设置?

标签 ruby-on-rails database facebook database-design authorization

设计像 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

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

Patterns for building social network type applications?

关于ruby-on-rails - Facebook 如何处理数据库端的隐私设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4406394/

相关文章:

mysql - 重新计算 120k 记录的计数器缓存 [Rails/ActiveRecord]

javascript - 单击 rails 按钮永久更改数据模型和 css

ruby-on-rails - 将现有应用程序的 Sqlite3 切换到 PostgreSQL

facebook - Graph api - 喜欢/直到 - 因为

javascript - Rails 中的日期选择器适用于 Chrome,但不适用于 Firefox

mysql - 我应该对许多分类行使用单个表吗?

c# - 使用本地数据库发布 WPF 应用程序

mysql 文件系统

javascript - Facebook Javascript SDK 和 CSP

php - Facebook 的 HipHop - 它有什么用?