当前位置:  开发笔记 > 编程语言 > 正文

在数据库中存储"投票"

如何解决《在数据库中存储"投票"》经验,为你挑选了2个好方法。

我正在编写一个内部网应用程序,它的一个功能大致类似于内容投票 - 与SO,亚马逊和其他许多网站不同.

假设每个可投票的内容都有一个唯一的ID,并且每个用户(他们都经过身份验证)都有一个唯一的ID,最简单的方法似乎是拥有一个"投票"表...

ContentID int
UserID int
VoteValue int

但是每次投票会创造一排 - 拥有数百万条内容和数万名用户,这张桌子将会非常庞大​​.这是最好的方法吗?我的意思是,如果一个int需要4个字节,每行需要12个字节.如果一百万条内容得到一百票,那就是400MB +的存储空间,是吗?似乎......很多:).即使VoteValue是一个tinyint(可能很好)并且只有1个字节,表中仍然只有几百兆字节.我的意思是sheesh.

有更聪明的方法吗?我应该将这个"投票"表存储在一个单独的数据库中(忽略潜在的数据完整性问题),以便在存储和性能方面将其从"主"数据中划分出来吗?

(我确实意识到,在今天的世界中,400MB并不是一吨 - 但似乎只是为了存储选票,是吗?)



1> BobbyShaftoe..:

嗯,是的,但你需要看一下更大的图景.有一百万件内容:

(内容大小)>>(投票数):">>"表示"更大".

如果你有一百万条内容,那么这可能是一个太字节数据,其中投票数为400MB.大不了?

我还想补充一点,如果您担心可扩展性,请查看此博客:

http://highscalability.com/



2> Mitchel Sell..:

就个人而言,只要你有良好的指数,你就会以正确的方式进行.根据您的使用情况,为了提高性能,您可以尝试通过存储辅助计数信息来避免点击投票表,但总体而言,如果您必须跟踪世界卫生组织投票的内容,则需要按照您列出的方式进行.

我不打算转移到另一个数据库,如果你真的担心SQL Server,你可以创建一个单独的文件组来保存它.....但很可能没有必要.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有