Php cms的最佳数据库概念

Php cms的最佳数据库概念,php,mysql,Php,Mysql,我必须为我的用户应用程序编写一个数据库,它总是向用户显示最新消息。 因此,如果用户在线,我想向他显示我主页上的新闻。如果客户端打开我的程序,它会发送类似的消息,并且应该以repsonse的形式获取最新的未读新闻,而不是显示在我的程序中 我有一个表users,它包含所需的字段,比如useros和userserial,还有一个表,它包含最新的新闻(字段id,newstext)。如果用户启动该应用程序,他应该以正确的顺序查看到目前为止尚未看到的所有新闻 我如何实现这一点?顺便说一句,我正在使用mysq

我必须为我的用户应用程序编写一个数据库,它总是向用户显示最新消息。 因此,如果用户在线,我想向他显示我主页上的新闻。如果客户端打开我的程序,它会发送类似的消息,并且应该以repsonse的形式获取最新的未读新闻,而不是显示在我的程序中

我有一个表users,它包含所需的字段,比如useros和userserial,还有一个表,它包含最新的新闻(字段id,newstext)。如果用户启动该应用程序,他应该以正确的顺序查看到目前为止尚未看到的所有新闻

我如何实现这一点?顺便说一句,我正在使用mysql


谢谢

当用户带着最近显示的新闻文章的id(最多是自动递增的int)来到您的站点时,我会尝试设置cookie。当用户稍后返回您的站点时,您可以从cookie中读取值,并以比cookie中存储的id更高的id显示新闻。此后,您可以使用新值更新cookie


正如我提到的,我认为当news id字段是一个自动递增的int字段时,这种方法将最有效。(我个人会根据用于确定文章是否需要显示的字段将新闻表拆分为不同的表)

在新闻文章中添加datetime字段,并在用户记录中添加datetime字段,该字段表示用户上次“查看新闻”的时间。这样,你可以简单地查询上次用户“查看新闻”后创建的所有新闻。

不是一个坏主意,但是我在自己的C++应用程序中使用了我自己的HTTP协议的实现,在那里我不能存储cookie(或者至少我不知道如何……所以所有的事情都应该发生在数据库中……)在这种情况下,您可以创建一个表,在该表中可以跟踪每个userserial最后提供的文章。因此,如果这是您第一次可以创建记录(userserial,上次服务器文章的编号),并且在连续访问时读取此值,则提供较新的文章并更新记录。哦,抱歉,我忘了提及用户表中已经有datetime字段。我使用的是一个replace into语句,其唯一键为serialnumber。因此,每次有人将替换连接到数据库中用户上次联机的位置时,@Omegavirus不确定您到底想向我解释什么。另外,为什么要使用Replace-Into而不是简单的更新?我上面提到的是一个相当简单的解决你所面临问题的方法。这有意义吗?我使用replace是因为如果请求的行不存在,它会插入一个新行。仅更新仅更新,而不插入已知的内容。我需要一个接一个地获取未读的新闻,所以我不能只选择较新的新闻并显示它们。@Omegavirus如果您在用户记录上为他们登录时打上时间戳,并将以前的登录时间移动到“以前的登录时间”字段,然后逐个抓取在这两次之间创建的每个新闻项,您仍然可以这样做。如果您希望跟踪每个新闻项,那么对于像新闻项这样的全局资源来说,这是相当困难的。这意味着您必须为每个用户(新闻项*用户)的每个新闻项保留一个记录,这可能会导致大量记录。对于像电子邮件这样的自有资源来说会更容易。