使用像StackOverflow这样的网站作为例子:
我有一个用户,问题和用户问题映射表。我的用户问题映射表如下所示:
userID (int 8)
questionID (int 8)
当显示热门问题列表时,我正在尝试标记已登录用户提出的问题。 检查每个问题是否存在用户问题映射,或者从数据库中获取登录用户的所有用户问题映射是否更有效,并在服务器端进行检查?< / b>
以下是我想看到的输出的可视示例:
问题1:什么? (你问过这个)
问题2:谁? 问题3:为什么? (你问过这个)
答案 0 :(得分:3)
演示文稿应始终留在表示层。如果在数据库中构建,基于您提到的业务规则的表示逻辑会更快:
SELECT q.title,
CASE
WHEN uq.who_asked = @user_id THEN 1
ELSE 0
END AS isYourQuestion
FROM QUESTIONS q
JOIN USER_QUESTIONS uq ON uq.question_id = q.question_id
然后,如果值为1,您可以使用isYourQuestion
标记应用程序以显示“(您问过这个)”。