1

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

他们将通过以下任何一种方式设置偏好:

  • 基于用户(选择特定用户 - 即阻止:“Munch”、“Dummy”)
  • 基于复选框(选择一个或多个用户组 - 即“我的朋友”、“我的网络中的任何人”)
  • 基于单选按钮(仅选择一组用户 - 即“所有人”)

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

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

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

这在编写查询所花费的时间或每个页面视图的查询量(查询以使另一个查询运行...blech!)上似乎都不是有效的。

而且因为我确信这已经完成了,所以我觉得我必须忽略一些东西。有没有更好的方法使用 PHP/MySQL 来做到这一点?

4

2 回答 2

1

我会将结果预先计算到“无法查看”的表中,即如果 usera 以某种形式阻止 userb(直接或因为他在一个组中),则该表会得到一条记录。它是一个古老的在写作而不是阅读上做繁重工作的人。

于 2010-01-21T23:36:53.903 回答
0

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

好。看看这个例子:你在单选按钮组中选择了“所有人”——那么为什么有人要对他的朋友隐藏它呢?

单选按钮对用户和您来说都是最简单的方法。

最好的问候,喇嘛

于 2010-01-21T23:18:17.287 回答