<分区>
假设您正在开发一个消息系统。一个非常基本的,你想保持简单,以便它易于备份、易于编码等。而且速度很快,并允许随着时间的推移进行扩展。
您如何看待用于处理此问题的基于堆栈的系统?
例如,您有一条由“收件人”、“发件人”、“时间戳”和“消息”组成的消息。您需要做的就是堆叠这些消息,当用户登录并想要检查他们的消息时,您需要做的就是遍历列表并找到 To == 当前登录用户的所有实例。
您认为这是处理此问题的好方法吗?或者你认为有更好的方法吗?有什么建议吗?
<分区>
假设您正在开发一个消息系统。一个非常基本的,你想保持简单,以便它易于备份、易于编码等。而且速度很快,并允许随着时间的推移进行扩展。
您如何看待用于处理此问题的基于堆栈的系统?
例如,您有一条由“收件人”、“发件人”、“时间戳”和“消息”组成的消息。您需要做的就是堆叠这些消息,当用户登录并想要检查他们的消息时,您需要做的就是遍历列表并找到 To == 当前登录用户的所有实例。
您认为这是处理此问题的好方法吗?或者你认为有更好的方法吗?有什么建议吗?
最佳答案
你可以设计一个 domain object并使用 SPLObjectStorage堆叠消息。
我会在 SQL 级别进行过滤(针对 === 当前登录的用户),因此您只需加载用户需要阅读的消息。这减少了加载时间。
编辑:
所以你有一个表叫做
还有一个叫做
的表与其他各种领域。这样您就可以通过 users.id = messages.senderId
和 users.id = messages.recipientId
连接两个表。您应该考虑在 senderId 和 recipientId 上放置两个索引。
关于基于 MySQL Stack 的消息设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13469026/