在Mysql上存储大量表单信息的最佳方法是什么?

时间:2012-12-13 01:11:45

标签: php mysql database-design

我正在创建一个非常简单的网站,您可以在那里注册锻炼,以便其他人可以看到并发表评论。

问题在于,例如,如果你每周训练6天,并做10次练习,我将不得不在Mysql上存储60个练习。

我正在考虑创建一个包含60行的表,然后我会将所有信息存储在那里,但出于某种原因,这似乎不是最佳方式。

那我该怎么办?我在Stack Overflow中看到了这里,我看到了一些关于使用数组存储它并使用PHP将其序列化的内容,但我对此并不十分肯定。

3 个答案:

答案 0 :(得分:4)

在担心此类问题之前,您应该考虑数据库是什么。 mysql通常处理数百万条目。在正常情况下,您不太可能超过此值。如果您确实获得了大量流量并且您的数据库增长到了扩展和升级有意义的程度,那么您可以咨询。现在,mysql将成为你的冠军。

序列化有其用途,但是当您想要单独检查结果时,您将需要使用关系设计。这样,您可以在特定的锻炼会话中存储每一点信息,并为用户提供更好的统计数据。毕竟,统计数据令人上瘾。该网站上的许多用户不断回来制作统计信息。

我读到你的问题的方式是你认为单独存储60次训练是很多数据。您有一个包含许多字段的表单,并且您想知道如何以有意义的方式将这些字段存储在数据库中。不仅适合你,也适合任何进入和注册的人。从来没有,对于任何数据库来说,这仍然是一项相对较小的任务。关系设计绝对是两种方式。

答案 1 :(得分:2)

您应该首先逻辑地决定要存储的内容,而不是如何存储它们。

一旦知道要存储的内容,就应该对数据进行规范化以删除冗余数据。这通常通过将数据转换为3nf来完成。见http://en.m.wikipedia.org/wiki/Database_normalization

通过这种方式,您可以确保捕获所有必需的数据。

答案 2 :(得分:1)

我建议您在任何情况下都使用数据库,因为您正在“存储”数据。数组序列化并不是真正存储数据,更多的是存储一段进程供以后使用。

使用数据库,你可以做更多的事情,你现在可能没有幻想,但如果有一天你会有一个新的计划来使用你收集的数据,你将有更多的扩展空间。

相关问题