如果您允许人们决定谁可以查看他们的用户信息,那么存储和访问该信息的最佳方式是什么?
他们会以下列任何一种方式设置他们的偏好:
- 基于用户(选择特定用户 - 即 block :“Munch”、“Dummy”)
- 基于复选框(选择一组或多组用户 - 即“我的 friend ”、“我网络中的任何人”)
- 基于单选按钮(仅选择一组用户 - 即“所有人”)
我目前的想法是,由于信息与正在查看的用户相关,而不是与点击网站的用户相关,因此您必须将这些选项存储在数据库中,并根据任何特定的结果组合运行某个查询。
唯一的问题是可能会有大量不同的查询:
- 7 个复选框最多可以有 128 种不同的组合 (2^7)
- 128 种组合 = 128 种不同的优化查询
无论是在编写查询所花费的时间还是在每个页面 View 的查询量(查询以运行另一个查询...blech!)方面,这似乎都不是有效的。
而且因为我确定以前有人这样做过,所以我觉得我一定是忽略了什么。使用 PHP/MySQL 有更好的方法吗?
最佳答案
我会预先将结果计算到一个“无法查看”的表中,即如果 usera 以某种形式阻止 userb(直接或因为他在一个组中),该表会得到一条记录说明这一点。重重写作而不是阅读是一种古老的方法。
关于php - 存储和访问 WebApp 用户隐私设置的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2113615/