我有一个简单的MySQL数据库和一个表,称之为X.用户通过PHP与X交互。简单的东西。现在我想让每个用户标记特定的"行"在X中,以便在将来搜索X时不会出现。
实施例。显示每个用户,比如行1到10.用户A不想看到第4,8,9行。但是用户B,Q和Z喜欢这些行,没有它们就无法生存。哦,我们不能忘记用户D,他们讨厌每一行但是......等等......
我该怎么做呢?
更新
我应该注意到:我意识到我可以创建另一个包含人们不想要的行的表格,但是设计表格的最佳方式是为了支持增加数字或用户和数据行?
答案 0 :(得分:0)
您需要一个名为X_blacklist
的表。
它有两列:userid
和postid
。这两列是复合主键。
对于userid
标识的用户隐藏postid
标识的帖子,她会将该行插入X_blacklist
。然后,当您将X中的项目显示给用户时,请执行以下操作:
SELECT X.postid, X.postcontent
FROM X
LEFT JOIN X_blacklist ON X.postid = X_blacklist.postid AND X_blacklist.userid = ?
WHERE X_blacklist.postid IS NULL
这消除了X
表中特定用户的其他表中提到的项目。