【发布时间】:2014-09-25 17:14:18
【问题描述】:
我不确定这是否是一个好的电子邮件数据库架构。
我为每个用户使用 redis 收件箱、存档、已发送列表来存储对话 ID(或线程 ID)。每个对话 ID 都指向一个消息 ID 的 redis 列表。每个消息 id 都指向一个 PostgreSQL 消息表。每当发送、归档或删除消息时,我都会在 redis 列表中移动 ID。
只有在搜索消息和从线程中获取消息时,事情才会有点混乱,因为您必须始终检查线程中的消息是否属于您,有时人们会在同一个线程中回复但不同一组用户。
这是一个好方法吗?有更好的想法吗?如何改进这一点?
【问题讨论】:
-
为什么这个schema的终点是一张PostgreSQL表?
-
我不能自信地争论为什么。我认为如果我也将消息存储在 Redis 中,它将占用太多内存。我不确定。
标签: database email database-design redis database-schema