Mysql NoSQL上的投票系统
在NoSQL数据库上使用投票系统是否可能/合理? 例如,如何将StackOverflow问题存储到NoSQL数据库中。Mysql NoSQL上的投票系统,mysql,mongodb,database-design,database,nosql,Mysql,Mongodb,Database Design,Database,Nosql,在NoSQL数据库上使用投票系统是否可能/合理? 例如,如何将StackOverflow问题存储到NoSQL数据库中。 除了问题/投票/用户之间的关系,我可以很容易地想象几乎所有的事情。其他所有东西都可以存储在一个文档中,比如标签、评论(假设帖子上的评论相对较少,在我的情况下,我不会有任何评论)、用户信息等等。。。但无法想象如何存储用户投票,因为文档将变得巨大。其中一个选项是,我可以将投票存储在单独的集合/文档中,但这意味着在加载问题时,需要发送另一个请求,以检查用户是否对某个问题投票。一个很好
除了问题/投票/用户之间的关系,我可以很容易地想象几乎所有的事情。其他所有东西都可以存储在一个文档中,比如标签、评论(假设帖子上的评论相对较少,在我的情况下,我不会有任何评论)、用户信息等等。。。但无法想象如何存储用户投票,因为文档将变得巨大。其中一个选项是,我可以将投票存储在单独的集合/文档中,但这意味着在加载问题时,需要发送另一个请求,以检查用户是否对某个问题投票。一个很好的参考是vs上的MongoDB文档,因为这些都是你在提问时提到的。没有完美的解决方案,因为两者都有各自的权衡。您只需根据操作/查询的类型及其在数据库上运行的频率做出最佳决策
老实说,在您的数据库开始获得一些严重的流量之前,SQL和NoSQL之间的区别并不重要。预优化最终可能弊大于利,因此我只选择一种最容易部署且您更习惯的方法作为开始。如果没有关于您的模式和您正在处理的规模类型的具体细节,这不是一个真正的问题。即使是像MySQL这样的东西,也可以通过一个正确设计的模式轻松处理数百万到数亿张选票。@tadman正如我所说的,与StackOverflow问题几乎相同,只是没有注释。至于规模。。。该网站尚未联机,但我预计流量会很高,这就是为什么我希望提前做好一切准备,避免将来的迁移。如果您的网站正在增长,您将始终有未来的迁移。不要在前面过度设计。你不知道痛点在哪里,直到你对系统施加压力。构建最简单的工作方式,并对其进行迭代。增量设计总是胜过那些对于初始规模来说过于复杂的东西,以及在压力下不充分且难以重新设计的东西。感谢他们提供的链接。如果未来很有可能会有大量流量,那么,从一开始就考虑可伸缩性的设计将在将来为您节省大量时间。