存储和访问WebApp用户隐私设置的最佳实践?

时间:2010-01-21 22:58:17

标签: php mysql settings logic preferences

如果您允许人们确定谁可以查看其用户信息,那么存储和访问该信息的最佳方式是什么?

他们会以下列任何一种方式设定他们的偏好:

  • 基于用户(选择特定用户 - 即。阻止:“蒙克”,“虚拟”)
  • 基于复选框(选择一个或多个用户组 - 即“我的朋友”,“我网络中的任何人”)
  • 基于单选按钮(仅选择一组用户 - 即“每个人”)

我当前的想法是,由于信息与正在查看的用户相关而不是点击网站,您必须将这些选项存储在数据库中,并根据结果的任何特定组合运行某个查询。

唯一的问题是可能存在大量不同的查询:

  • 7个复选框最多可包含128种不同的组合(2 ^ 7)
  • 128种组合= 128种不同的优化查询

在编写查询所花费的时间或每个页面视图的查询量(查询以获取另一个查询以运行... blech!)似乎都没有效率。

因为我确信之前已经完成过,所以我觉得我必须忽视某些事情。使用PHP / MySQL有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

我会将结果预先计算到“无法查看”的表中,即如果某些表单中的usera阻止了userb(直接或因为他在一个组中),该表会得到一条记录。它是一个从事写作而不是阅读的繁重时期的老年人。

答案 1 :(得分:0)

我认为最好的选择是基于单选按钮。 通过一个你一直都知道的用户列表也会非常痛苦。复选框一个听起来也不错。

好。看看这个例子:你在单选按钮组中选择“Everyone” - 为什么有人想把它隐藏起来呢?

无线电按钮对于用户和您来说都是最简单的方式。

最好的问候, 喇嘛