Php 为每个用户获取新项目
我有许多对象(实体)。例如“新闻”、“博客”、“评论”; 我需要向注册用户显示多少“新闻”或“博客”对他来说是新的 现在,我创造了一种多对多的关系;例如“用户新闻阅读器”,它包含以下字段:id、userId、newsId; 如果“新闻”的关系存在,则该“新闻”已被读取,即“新闻”计数是当前用户的新“新闻”计数 所以,在这个方法中,我有很多表来表示多对多关系。Php 为每个用户获取新项目,php,algorithm,forum,Php,Algorithm,Forum,我有许多对象(实体)。例如“新闻”、“博客”、“评论”; 我需要向注册用户显示多少“新闻”或“博客”对他来说是新的 现在,我创造了一种多对多的关系;例如“用户新闻阅读器”,它包含以下字段:id、userId、newsId; 如果“新闻”的关系存在,则该“新闻”已被读取,即“新闻”计数是当前用户的新“新闻”计数 所以,在这个方法中,我有很多表来表示多对多关系。 如何使其更加美观和正确?这可以用SQL完成 表: user_logons (username,logontime datetime) ne
如何使其更加美观和正确?这可以用SQL完成 表:
user_logons (username,logontime datetime)
news (newsitem,newstime datetime)
user_news (newsitem,username)
SQL
应该有用。这将仅显示自上次登录以来用户未查看过的新消息。你也可以将其应用于博客。这也将计算新文章的数量。遗憾的是,没有时间去测试。尝试sqlfiddle.com存储用户上次查看内容的时间,然后只选择在该时间之后添加的内容。节省了很多映射表,这似乎在论坛引擎中使用。。谢谢但可能有更多的解决方案?
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