Php 用户信息系统
我正在考虑创建一个用户消息系统(类似于Facebook) 我想知道的基本上是表结构应该是什么样的?我的要求如下:Php 用户信息系统,php,mysql,Php,Mysql,我正在考虑创建一个用户消息系统(类似于Facebook) 我想知道的基本上是表结构应该是什么样的?我的要求如下: 消息在用户之间交换-发件人可以选择多个用户向其发送消息 消息以线程样式的布局显示为1-1对话。i、 e.每个收件人的回复将出现在自己的帖子中 无法删除单个邮件,但可以删除线程。删除线程不会删除任何消息,它只是将该线程从用户的收件箱中删除。但是,如果其他用户没有从收件箱中删除该线程,则仍然可以访问该线程 以下是我目前的情况: Table messages =============
- 消息在用户之间交换-发件人可以选择多个用户向其发送消息
- 消息以线程样式的布局显示为1-1对话。i、 e.每个收件人的回复将出现在自己的帖子中
- 无法删除单个邮件,但可以删除线程。删除线程不会删除任何消息,它只是将该线程从用户的收件箱中删除。但是,如果其他用户没有从收件箱中删除该线程,则仍然可以访问该线程
为什么不使用像Jabber这样的语言(例如:or) 如果您需要PHP与之交互,可以使用以下内容:
或者我建议至少具备以下条件: 用户、线程、消息
- 所有消息都会有一个线程
- 外键:线程id
- 所有线程都至少有一条消息和一个收件人(以及发件人)
- 外键:to_user_id、from_user_id、message_id
- 是否要显示当前消息而不是起始消息李>
- 您想允许用户将单个消息标记为已读,还是仅标记为线程李>
在设计数据库时,您需要考虑所有这些因素。@Angelo R.想知道我们为什么需要线程表吗?这不是任何讨论板。如果您想检索消息的整个线程/会话,只需按源和收件人ID查询即可。 另外,如果你使用线程,没有什么不好的。但是在这种情况下呢 如果新消息-新线程id(自动创建),如果回复到现有会话,则您拥有线程id,但如果您正在创建新消息(如facebook弹出),则您不知道之前是否有任何会话,或者线程id是否可用,除非您对其执行特殊查询。
这是我的想法。告诉我我是否可能在某个地方出错。可能有更多的信息无法提供。我认为没有人会完全为您设计数据库(至少不是免费的)。为什么不告诉我们你的想法,这样我们就可以发表意见。@Dutchie432-我不是要求完整的数据库设计-我只是需要一些指导。消息传递系统只是我现有系统的一个模块,即我已经有一个用户表。无论如何,我已经更新了我的问题。看起来他正试图设计一个私人信息系统,而不是一个实际的现场聊天。感谢Angelo的回复-非常感谢。我不知道你所说的“你想显示当前消息而不是起始消息”是什么意思——因为它是基于线程的布局,所以它会显示我认为所有的消息。关于是否将单个消息或线程标记为已读,我认为应该是实际的线程。所以在线程表中可能有一个“read_status”标志。别忘了,每个用户都需要一个read_状态。另外,我的意思是,当你给用户一个他们信息的概述(如果你打算给他们一个),你会显示第一条信息的摘录还是最近的一条?想象一下一个网络邮件界面,在那里他们会给你一些邮件中的信息摘录。这是一种你不需要拥有的东西,但这是一种需要思考的东西。干杯。请查看我的最新编辑,并告诉我您的想法。您认为初始消息是否应包含在“线程”表中?这样,如果将同一封邮件发送给多个收件人,则不需要为每个收件人创建单独的邮件。