所以我有 3 个表:用户、帖子、私人。在此示例中,lizzy 创建了一个私人帖子“约会”,并且只希望她的女朋友在私人表中看到它“authorized_user_ids”,而她自己在帖子表中看到“user_id”。
users
user_id user_name
1 tony
2 steph
3 lizzy
4 adam
5 lara
6 alexa
posts
post_id user_id post_name private (0 is public, 1 is private to authorized users)
1 1 Coding 0
2 3 Dating 1
3 3 Show Me 0
private
private_id post_id authorized_user_ids
1 2 2,5,6
只有私人发帖者 user_id 和 authorized_user_ids 可以看到 lizzy 的“约会”帖子,但每个人都应该可以看到 lizzy 的“Show Me”帖子。注销的用户和未授权的用户不应该看到任何东西。这是最有效的方法吗,还是应该是:
private
private_id post_id authorized_user_id
1 2 2
2 2 5
3 2 6
这是我的第一个问题。我的第二个是从 mysql 数据库中提取数据时在 php 中解决它的最佳方法(显示到 authorized_user_ids)是什么?我们是否根据帖子表中的“私人”标志进行第二次查询?如果是1,我们在while循环中查询,从私有表中获取'authorized_user_ids',如果匹配到登录用户的$logged_in_id,那么我们显示'Dating'?或者是否应该在主查询中使用私有表和帖子表中的“post_id”与“授权_user_ids”进行连接?任何有关如何最有效地做到这一点的帮助表示赞赏。