我的工作是一个聊天网站,用户可以创建房间,邀请其他人和聊天一起。我有很多网站的核心基础设施到位,包括大多数服务器和网站本身的一半,但我遇到了一个决定,我必须作出。
每个用户可以接收到他们的收件箱的消息,例如,他们收到邀请请求加入另一个用户的房间,或与他们的帐户有关的更一般的警报。
问题:我应该将这些收件箱消息存储在数据库中吗?
收件箱消息通常持续几天,因此它们是非常短暂的数据片段。如果我要将它存储在数据库中,这是一个关于实体外观的粗略想法:
| accountId | message | type |
|-----------|---------------------------------------------------------|-----------------|
| 59 | user3 requested you to join 'hangouts' | invite_request |
| 24 | dialto accepted your request to join 'study group' | invite_response |
| 67 | please confirm your email address to claim your account | account_alert |在这个网站上,我会创建一个界面,他们可以查看他们的收件箱信息,如果他们想要的话,他们可以丢弃它们。如果他们丢弃收件箱消息,那么它将被删除在数据库中。
就效率而言,这是解决这个问题的最佳方法吗?还有其他选择吗?
我不知道这是否有帮助,但这是我的应用程序的技术栈:
Graphql
谢谢一堆。
我可能需要6-8个小时的时间来回应,因为我是关于上午7点48分的假期,对不起:)
发布于 2022-01-26 21:12:39
结构化数据的持久性没有很好的替代方案。
有许多不同的数据库是为不同的目的而优化的,没有一个合适的。
作为一条经验法则,当你开始一个项目时,你要保持它的简单,并且不惜一切代价避免复杂性。
当您得到一些真正的规模,然后您开始进行优化和查看访问模式,水平缩放/分区(分布式系统),在内存存储,等等。
https://stackoverflow.com/questions/70870135
复制相似问题