我有很多对象(实体)。例如“新闻”、“博客”、“评论”;我需要向注册用户展示多少“新闻”或“博客”对他来说是新的;
现在,我创建了一个多对多的关系;例如“users-news-reader”,其中包含字段:id、userId、newsId;如果“新闻”的关系存在,则该“新闻”已经被读取,即“新闻”的计数是当前用户的新“新闻”的计数
因此,在这种方法中,我有许多用于多对多关系的表。我怎样才能使它更漂亮和正确?
这可以在 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