Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql NoSQL上的投票系统_Mysql_Mongodb_Database Design_Database_Nosql - Fatal编程技术网

Mysql NoSQL上的投票系统

Mysql NoSQL上的投票系统,mysql,mongodb,database-design,database,nosql,Mysql,Mongodb,Database Design,Database,Nosql,在NoSQL数据库上使用投票系统是否可能/合理? 例如,如何将StackOverflow问题存储到NoSQL数据库中。 除了问题/投票/用户之间的关系,我可以很容易地想象几乎所有的事情。其他所有东西都可以存储在一个文档中,比如标签、评论(假设帖子上的评论相对较少,在我的情况下,我不会有任何评论)、用户信息等等。。。但无法想象如何存储用户投票,因为文档将变得巨大。其中一个选项是,我可以将投票存储在单独的集合/文档中,但这意味着在加载问题时,需要发送另一个请求,以检查用户是否对某个问题投票。一个很好

在NoSQL数据库上使用投票系统是否可能/合理? 例如,如何将StackOverflow问题存储到NoSQL数据库中。
除了问题/投票/用户之间的关系,我可以很容易地想象几乎所有的事情。其他所有东西都可以存储在一个文档中,比如标签、评论(假设帖子上的评论相对较少,在我的情况下,我不会有任何评论)、用户信息等等。。。但无法想象如何存储用户投票,因为文档将变得巨大。其中一个选项是,我可以将投票存储在单独的集合/文档中,但这意味着在加载问题时,需要发送另一个请求,以检查用户是否对某个问题投票。

一个很好的参考是vs上的MongoDB文档,因为这些都是你在提问时提到的。没有完美的解决方案,因为两者都有各自的权衡。您只需根据操作/查询的类型及其在数据库上运行的频率做出最佳决策


老实说,在您的数据库开始获得一些严重的流量之前,SQL和NoSQL之间的区别并不重要。预优化最终可能弊大于利,因此我只选择一种最容易部署且您更习惯的方法作为开始。

如果没有关于您的模式和您正在处理的规模类型的具体细节,这不是一个真正的问题。即使是像MySQL这样的东西,也可以通过一个正确设计的模式轻松处理数百万到数亿张选票。@tadman正如我所说的,与StackOverflow问题几乎相同,只是没有注释。至于规模。。。该网站尚未联机,但我预计流量会很高,这就是为什么我希望提前做好一切准备,避免将来的迁移。如果您的网站正在增长,您将始终有未来的迁移。不要在前面过度设计。你不知道痛点在哪里,直到你对系统施加压力。构建最简单的工作方式,并对其进行迭代。增量设计总是胜过那些对于初始规模来说过于复杂的东西,以及在压力下不充分且难以重新设计的东西。感谢他们提供的链接。如果未来很有可能会有大量流量,那么,从一开始就考虑可伸缩性的设计将在将来为您节省大量时间。