这里我已经包含了我的表层次结构,它提供了基本的想法。
我只计算员工用户对最终用户提出的多次查询的新回复。当用户登录他的帐户时,我怎么想要计算AnswerId的总数(由员工用户给出的回复)。
请告诉我如何实现这一点。
答案 0 :(得分:1)
declare @user_id int -- I assume this is an integer
set @user_id=123 -- the user_id you are interested in
select count(*)
from tbl_answer a
join tbl_question q on q.id=a.question_id
join tbl_inquiry_history i on i.inquiry_id=q.inquiry_id
where i.user_id = @user_id
要在上次登录后通知用户“新”答案,您有两个主要选择: -
选项1“快速而肮脏”。它很容易实现。它也是最没用的。用户接下来要问的是“好的。那么哪些答案是新的?”。如果您可以按照创建的顺序对答案进行排序,您可以(从上面的示例中)向他们展示最新的5个答案 - 但这与您可以做的一样多。他们没有粒度能够阅读其中一个答案并返回列表并缩短列表(取出他们刚刚阅读的答案) - 没有你(作为开发人员)跳过一些复杂的箍操纵列表
选项2是更复杂的解决方案,但提供了用户可能期望的界面类型(如Facebook或StackOverflow)。聪明的是不要使用bool / bit作为你的标志 - 这只能让你跟踪用户是否已经阅读了答案。如果您使用日期时间,您还可以跟踪他们何时阅读答案 - 这样可以更多地分析系统的使用方式。
您(或者更确切地说,您的用户)需要决定您使用哪种方法 - 每个答案上都有一个简单的高水印或粒状标记。如果你从选项1开始,你几乎肯定必须在某个时候实现选项2 - 所以你也可以用字节(lol)子弹并且第一次“正确”执行它。