我有很多对象(实体)。例如“新闻”,“博客”,“评论”; 我需要向注册用户显示“新闻”或“博客”对他来说有多新;
现在,我创建了一个多对多的关系;例如“users-news-reader”,其中包含字段:id,userId,newsId; 如果“新闻”的关系存在,则此“新闻”已经被阅读,即“新闻”计数是当前用户的新“新闻”计数
所以,在这个方法中,我有许多用于多对多关系的表。 我怎样才能让它更漂亮和正确?
答案 0 :(得分:0)
这可以在SQL中完成。
表:
user_logons (username,logontime datetime)
news (newsitem,newstime datetime)
user_news (newsitem,username)
SQL
SELECT count(*),newsitem FROM news LEFT JOIN user_news ON user_news.newsitem=news.newsitem WHERE newstime >
(SELECT logontime FROM user_logons ORDER BY logontime DESC LIMIT 1)
AND user_news.username IS NULL
应该有效。这将仅显示自上次登录以来用户未查看的新消息。您也可以根据博客进行调整。这也将计算新文章的数量。可悲的是,没时间进行测试。试试sqlfiddle.com