0

我有很多对象(实体)。例如“新闻”、“博客”、“评论”;我需要向注册用户展示多少“新闻”或“博客”对他来说是新的;

现在,我创建了一个多对多的关系;例如“users-news-reader”,其中包含字段:id、userId、newsId;如果“新闻”的关系存在,则该“新闻”已经被读取,即“新闻”的计数是当前用户的新“新闻”的计数

因此,在这种方法中,我有许多用于多对多关系的表。我怎样才能使它更漂亮和正确?

4

1 回答 1

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

于 2013-06-11T11:43:24.457 回答