我正在编写一个将成为 Intranet 应用程序的东西,其功能之一大致类似于内容投票 - 与 SO、Amazon 和许多其他网站所做的没有什么不同。
假设每个可投票的内容都有一个唯一的 ID,并且每个用户(他们已经过身份验证)都有一个唯一的 ID,最简单的方法似乎是有一个“投票”表......
ContentID int
UserID int
VoteValue int
但这会在每次投票中创建一行 - 拥有数百万条内容和数万用户,该表格将非常巨大。这是最好的方法吗?我的意思是,如果一个 int 占用 4 个字节,则每行占用 12 个字节。如果一百万条内容获得一百票,那就是 400MB+ 的存储空间,是吗?似乎......很多:)。即使 VoteValue 是一个 tinyint(这可能很好)并且只有 1 个字节,表中仍然有几百兆字节。我的意思是嘘。
有没有更聪明的方法?我是否应该将此“投票”表存储在单独的数据库中(忽略潜在的数据完整性问题),以便在存储和性能方面将其与“主要”数据分区?
(我确实意识到,在当今世界 400MB 并不是一吨——但存储选票似乎很多,是吗?)