Php 消息系统:保存并发送-何时插入新消息?

Php 消息系统:保存并发送-何时插入新消息?,php,mysql,user-interface,Php,Mysql,User Interface,在使用PHP和MySQL构建的私有消息传递系统中,用户可以编写新消息并回答消息。有两个按钮:“发送”和“保存”。消息状态存储在数据库中(0=尚未发送,1=已发送)。此外,消息每隔3分钟通过ajax调用自动保存一次 发送的消息和草稿存储在数据库的同一个表中。现在,您将在何时执行插入消息… 如果用户单击撰写新消息或回答?如果用户不发送消息,关闭窗口,按下后退按钮,如何清除所有从未发送的消息 您还有什么建议吗?当用户单击“撰写邮件”时,我会插入一条状态为“待定”的新邮件。例如,您可以删除已停用一天的所

在使用PHP和MySQL构建的私有消息传递系统中,用户可以编写新消息并回答消息。有两个按钮:“发送”和“保存”。消息状态存储在数据库中(0=尚未发送,1=已发送)。此外,消息每隔3分钟通过ajax调用自动保存一次

发送的消息和草稿存储在数据库的同一个表中。现在,您将在何时执行
插入消息…

如果用户单击撰写新消息或回答?如果用户不发送消息,关闭窗口,按下后退按钮,如何清除所有从未发送的消息


您还有什么建议吗?

当用户单击“撰写邮件”时,我会插入一条状态为“待定”的新邮件。例如,您可以删除已停用一天的所有“挂起”邮件

当用户忙于处理该特定消息(例如1分钟)时,您会将该消息保存为“概念”,并在用户离开页面后供其查看。我永远不会删除概念,让用户自己去做

当用户单击“保存”(而不是“发送”)时,您也会给消息“概念”状态(如果之前没有)

消息发送后,您将其设置为“已发送”状态。但在以这种方式开发消息系统之前,您需要考虑以下事项:

问自己一个问题:什么是信息?消息本身是否有状态?这一身份适用于谁?已读邮件的状态可以为“已读”,但如果您将邮件发送给多个收件人,该怎么办?您是否在所有收件人阅读时更改状态?不太方便

我建议您稍微更改数据库模型,以启用多个收件人。将标题、正文等保存在一条记录中,并为每个保存邮件状态的收件人添加新记录(在不同的表中)。发件人和每个收件人各有一个。通过这种方式,您可以单独操作每个收件人的邮件状态,并且可以通过查看所有这些记录来计算整个邮件状态。(10个收件人中有5个已阅读您的邮件)


自动保存的消息不是作为草稿版本可见吗?然后他们会自己清理大部分垃圾


应要求提供答复;)

自动保存的消息不是作为草稿版本可见吗?然后他们会自己清理大部分。嘿,很聪明!哇,这可能是一个足够简单的解决方案!谢谢@LucFranken@卢克弗兰肯:你能提供一个答案吗?事实上,我发现你的简单解决方案是最好的答案,如果可能的话,我愿意接受吗?非常感谢。谢谢你的想法,罗宾。当然,事实上数据库结构非常不同,并且没有表
messages
,我只是不想增加问题的复杂性,因为我觉得这对于我的实际问题并不重要。根据您对“待定”和“概念”的想法:当用户单击“撰写/回答”时,直接插入它有什么不同?除了等一分钟?你认为这会把大部分信息整理出来吗?而且:在这种情况下,我必须不断地在数据库中运行脚本,这是我宁愿避免的。。。