【发布时间】:2012-09-03 06:02:32
【问题描述】:
我正在从事一个项目,其中我有类似于 StackOverFlow 的上下投票选项。我在数据库设计方面没有太多经验,因此我遇到了以下问题,
首先,这是我的投票表结构:
- voteId-----AUTO_INCREMENT 与 PRIMARY KEY。
- mediaId----用户投赞成票/反对票的媒体。
- userId-----投票的用户。
- voteMode---1 表示赞成票,0 表示反对票。这是一个整数字段。
在这种情况下,如果我有 100 个用户和 100 个媒体,那么我将在此表中总共有 100x100 条记录。
这里出现的问题是数据库正在处理大量记录,而投票按钮现在反应迟钝。这让我的客户不高兴,让我陷入困境。
谁能给我一个更好的模型来避免这个巨大的桌子?
我正在使用 jQuery.ajax 向服务器发布我的投票。此外,该项目基于 PHP 和 Zend Framework 1.11。因此,当我单击 UP 图标时,需要一些时间来响应。 Mozilla 曾经崩溃过某些时候。 我测试了通过包含大量垃圾记录(大约 15000 条)的循环插入。
【问题讨论】:
-
您是否使用任何索引?哪些查询很慢?
-
您使用的 PHP 框架是(或应该)与数据库结构完全无关的。更重要的是您使用 JQuery。您可以编写一个投票桌面应用程序,但仍然需要相同的数据库。不要让这些事情影响您的决策。
-
不,我不是。对韦恩不太熟悉。我以前从未尝试过很多数据库。
-
为您几乎没有经验的“客户”提供服务,往好里说是冒险,往坏里说是完全不负责任。
-
当一个投票时,您正在插入数据库,对吗?这是发生得很慢吗?
标签: php mysql database zend-framework database-design