我有一个 crm 应用程序。我从事消息线程工作,发现了一个问题。当我不得不显示每个用户提出的多个查询的新回复时。就像 Facebook 一样,当您登录您的帐户时,它会显示“评论计数器”,然后它不会显示新的回复。我怎么只想算不显示摘要报告。
在这里,我包含了给出基本概念的表层次结构。
我只计算了员工用户对最终用户提出的多次询问的新回复。当用户登录到他的帐户时,我怎么想计算 AnswerId 的总数(由员工用户给出的回复)。
请告诉我我如何实现这一点。
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 - 所以您不妨字节(大声笑)项目符号并第一次“正确”地做。