将“选票”存储在数据库中

2024-06-05

我正在编写一个 Intranet 应用程序,其功能之一大致类似于内容投票 - 与 SO、Amazon 和许多其他网站的做法不同。

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

ContentID int
UserID int
VoteValue int

但这会为每次投票创建一行 - 拥有数百万条内容和数以万计的用户,该表将变得非常巨大。这是最好的方法吗?我的意思是,如果 int 占用 4 个字节,则每行占用 12 个字节。如果一百万条内容获得一百票,那么存储空间就超过 400MB,是吗?看起来...很多:)。即使 VoteValue 是一个tinyint(这可能没问题)并且只有 1 个字节,表中仍然有几百兆字节。我的意思是谢什。

有更聪明的方法吗?我是否应该将此“投票”表存储在单独的数据库中(忽略潜在的数据完整性问题),以便在存储和性能方面将其与“主”数据分区?

(我确实意识到,在当今世界,400MB 并不是很多 - 但仅仅为了存储选票似乎就很多了,是吗?)


嗯,是的,但你需要着眼于更大的前景。拥有一百万条内容:

(内容大小)>>(投票大小):其中“>>”表示“大得多”。

如果您有 100 万条内容,那么这可能是 1 TB 的数据,而投票则为 400 MB。有什么大不了的吧?

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

http://highscalability.com/ http://highscalability.com/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将“选票”存储在数据库中 的相关文章

  • 数据库字段中的逗号分隔值

    我有一个产品表 该表中的每一行对应一个产品 并由唯一的 ID 标识 现在 每个产品都可以有多个与该产品关联的 代码 例如 Id Code 0001 IN ON ME OH 0002 ON VI AC ZO 0003 QA PS OO ME
  • 如何使用 django ORM 在外键字段上连接两个表?

    假设我有以下模型 class Position models Model name models CharField class PositionStats models Model position models ForeignKey P
  • rake db:migrate db:reset 和 db:schema:load 之间的区别

    和 之间的不同rake db migrate and rake db reset我很清楚 我不明白的是如何rake db schema load与前两者不同 只是为了确保我在同一页面上 rake db migrate 运行尚未运行的迁移 r
  • Sqlite 查询检查 - 小于和大于

    return mDb query DATABASE TABLE new String KEY ROWID KEY LEVEL KEY LEVEL gt 3 lt 5 null null null null 我究竟做错了什么 它返回的值全部高
  • Oracle 中仅在一列上不同

    我想在下表中使用不同的值 但仅在 PlayerID 列上使用 这就是我现在所拥有的 MATCHID PLAYERID TEAMID MATCHDATE STARTDATE 20 5 2 14 JAN 12 01 JUN 11 20 5 4
  • PostgreSQL 上的可扩展性

    我创建了自己的 R 树 rtree h 我想用我自己的数据结构 使用 PostGis 在 postgres 中创建一个扩展 我已经读过连接索引扩展 http www postgresql org docs 9 4 static xindex
  • 针对表中的每一行运行 SQL Server 函数

    我有一个函数可以迭代表中的 每一行 当它运行时 它应该查看每一行 提取该行的相关 SET 值并运行该函数 该函数依次返回结果并使用正确的值更新正确的行 发生的情况是 它正在运行并返回最后一行的值 并用该值更新所有行 有什么想法我做错了吗 S
  • 保持服务器和客户端之间的验证逻辑同步[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 In my 上一个问题 https stackoverflow com questions 39371 database exception h
  • 从局域网上的另一台计算机访问wamp中的网站文件和phpmyadmin

    我将文件托管在一台充当服务器的计算机上 但我想从局域网上的另一台计算机访问根 www 目录文件和 phpmyadmin 通过访问 我的意思是编辑它们并打开它们以查看和进行更改到数据库和代码 这怎么可能 默认情况下 WAMPServer 配置
  • 在Firestore中管理createdAt时间戳

    每天我都会将产品从外部零售商进口到谷歌云Firestore https firebase google com docs firestore 数据库 在此过程中 产品可以是新的 新文档将添加到数据库中 或现有的 现有文档将在数据库中更新 应
  • SQLite 连接在 C# 中不起作用

    我正在使用操作 SQLite 数据库的 C 应用程序 直到昨天它工作正常 它正在检索记录 但从昨晚开始 连接字符串返回 Data Source null 下面是测试代码 using System using System Collectio
  • 在哪里可以找到 neo4j 快速教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Laravel 插入三向数据透视表

    Summary 我正在构建音乐发现服务 我的问题是 如何将数据插入三向数据透视表 标签 跟踪 用户 Schema 我看到了这个架构在 LaravelSD http www laravelsd com share WNmzz8 它由六个主表
  • 有关 items_for_sale 随着时间的推移更新的数据库/架构设计问题

    我知道我的问题的明显答案是 这取决于 解决这个问题后 我希望你们中的一个 或多个 能够帮助我找到解决这个问题的常见方法 我正在设计一个待售小部件数据库 随着时间的推移 每件商品的价格将不可避免地发生变化 我的问题是我们是否应该跟踪这些变化
  • 不同的数据库使用不同的名称引用吗?

    例如 mysql引用表名使用 SELECT FROM table name 注意 其他数据库是否使用不同的字符来引用其表名 这种引号的使用称为分隔标识符 它是 SQL 的重要组成部分 因为否则您将无法使用以下标识符 例如表名和列名 包含空格
  • 如何让MySQL数据库完全在内存中运行?

    我注意到我的数据库服务器支持内存数据库引擎 我想让一个已经运行 InnoDB 的数据库完全在内存中运行以提高性能 我怎么做 我探索了 PHPMyAdmin 但找不到 更改引擎 功能 假设您了解注释中提到的使用 MEMORY 引擎的后果 并且
  • 我是否应该标准化我的数据库?

    在设计数据库 例如 MySQL 的模式时 会出现是否完全规范化表的问题 一方面 连接 以及外键约束等 非常慢 另一方面 您会获得冗余数据和潜在的不一致 最后优化 是正确的方法吗 即创建一个按书本规范化的数据库 然后查看可以对哪些内容进行非规
  • 半透明数据库

    我正在构建一个包含健康信息的应用程序 这个面向消费者的应用程序对我来说是新的 我想要一种方法来完全消除隐私问题 当我回顾保护可公开访问的数据库中的敏感数据的方法时 我经常遇到数据库半透明的概念 有原书 http www wayner org
  • 浏览器关闭后从数据库中删除

    我正在开发一个电子商务应用程序 但问题是 当用户将产品添加到购物车并在订购前关闭浏览器时 购物车会带走所有产品 所有购物车项目都保存在表中 如果用户关闭浏览器而不订购 我只想刷新购物车 您可以使用 Javascript 事件捕获浏览器关闭并
  • 全静态方法和应用单例模式有什么区别?

    我正在创建一个数据库来存储有关我的网站用户的信息 我正在使用 stuts2 因此使用 Java EE 技术 对于数据库 我将创建一个 DBManager 我应该在这里应用单例模式还是将其所有方法设为静态 我将使用这个 DBManager 进

随机推荐

  • Erlang 中的函数链

    最好创建像 Active Record 或 Hibernate 这样的 ORM 它应该像这样处理链式查询 User User new for login stackoverflow admin for password 1984 load
  • 什么是 Swift 4.1.50?

    I m playing around with the Xcode 10 beta and I noticed while doing compile time checks of the Swift version number that
  • Chrome 中的 CSS 列不平衡

    我想使用以下方法在多列中动态显示一些 Bootstrap 列表组CSS 列 https developer mozilla org en US docs Web Guide CSS Using multi column layouts 但我
  • 使用magento中SOAP API的salesOrderInfo获取简单的产品sku和数量

    我在以下代码中添加了 app code core Mage Sales Model Order Api php File public function info orderIncrementId order Mage getModel s
  • 为什么使用参数化查询将数据插入表比将值附加到查询字符串更快?

    为什么使用参数化查询向表中插入数据 string queryString insert into product id name values id name 比将值附加到查询字符串更快 string queryString insert
  • getItemAtPosition() 未在列表视图中返回值

    我创建了一个自定义基本适配器类 用图像和文本填充列表视图 类的代码如下 public class ViewAdapter extends BaseAdapter private Activity activity private Strin
  • 二指针算法

    我想了解两指针算法方法 所以我一直在阅读本文 https tp iiita quora com The Two Pointer Algorithm 所以这是问题 假设我们有一个包含 N 个元素的数组 我们想要找到该数组中最大的连续元素序列
  • dplyr:取消选择由给出的列

    如何取消选择中给出的列 自写函数的参数 我还需要在另一点选择列 因此只需使用 in 没有解决我的问题 任何解决方案表示赞赏 select 帮助者 操纵者quosures或表达方式 very simple example data test
  • 停止 CSS 动画但让其当前迭代完成

    我有以下 HTML div class rotate div 以及以下 CSS webkit keyframes rotate to webkit transform rotate 360deg rotate width 100px hei
  • 在 NodeJs 中处理 Mongodb 全局连接的最佳方法是什么

    I using 节点 Mongodb Native https github com mongodb node mongodb native并尝试设置全局连接变量 但我对两种可能的解决方案感到困惑 大家能帮我看看哪一款比较好吗 1 解决方案
  • PHP 中 glob() 中的转义空格?

    我在 PHP 中有以下函数 除了名称中带有空格的文件外 该函数运行良好 Good picture jpg例如 这里是 function getphotolist currentalbum photos glob currentalbum J
  • 从 Joomla 3 url 中删除文章 ID

    我正在尝试从 Joomla 3 URL 中删除文章 ID 我四处搜寻 得到的答复是 组件 com content router php 将 0 更改为 1 advanced params gt get sef advanced link 1
  • 使用 CMake 和 clang 在 Windows 上构建简单的 C++ 项目

    我正在尝试在 Windows 10 上构建一个简单的 Hello World 程序 最好使用 CMake 和 clang 如果我使用 MinGW 的 g 编译器 我可以成功编译 链接和运行同一个项目 但当我尝试使用 clang 时会遇到问题
  • C/C++ 中自给自足的头文件

    我最近发布了一个问题 询问哪些行动将构成C 之禅 https stackoverflow com questions 1879034 what is the zen of c 我收到了很好的答案 但我无法理解一项建议 使头文件自给自足 你如
  • 撤消“从选择中创建新组”项目 xcode 4

    我不小心将我的项目添加到了一个组中 现在我无法在 xcode 4 中将其删除 有什么想法吗 如果我将其拖出 它会要求我创建一个工作区 编辑 我在错误报告中向苹果报告了这一点 我会及时向大家通报最新情况 这是一个没有工作空间的项目 关闭 Xc
  • 使用两列数据分割数据帧并对结果数据帧列表应用通用转换

    我想根据两列中的值将一个大数据帧拆分为一个数据帧列表 然后 我想对结果列表中的所有数据帧应用通用数据转换 滞后转换 我知道 split 命令 但只能让它一次处理一列数据 您需要将所有想要分割的因素放在一个列表中 例如 split mtcar
  • 什么是 iBeacon 蓝牙配置文件

    我想使用一些低功耗蓝牙开发套件创建自己的 iBeacon Apple 尚未发布 iBeacon 规范 但是 一些硬件开发人员已根据 AirLocate 示例代码对 iBeacon 进行了逆向工程 并开始销售 iBeacon 开发套件 那么
  • 如何正确设置服务器?

    我正在尝试制作一个在一段时间后更新的游戏服务器 import time last time time time tick 1 time since last update 0 while True new time time time dt
  • SignalR 1.01 中不需要 MapHub?

    我正在遵循 Signalr Wiki 中的集线器快速入门指南 我在 Global asax Application Start 行 RouteTable Routes MapHubs 上收到错误 名为 signalr hubs 的路由已在路
  • 将“选票”存储在数据库中

    我正在编写一个 Intranet 应用程序 其功能之一大致类似于内容投票 与 SO Amazon 和许多其他网站的做法不同 假设每个可投票的内容都有一个唯一的 ID 并且每个用户 他们经过身份验证 都有一个唯一的 ID 最简单的方法似乎是有