1

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

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

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

所以我该怎么做?我在 Stack Overflow 中查看这里,我看到了一些关于使用数组存储它并使用 PHP 对其进行序列化的内容,但我对此不太确定。

4

3 回答 3

4

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

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

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

于 2012-12-13T01:15:25.413 回答
2

您应该首先从逻辑上决定要存储什么,而不是如何存储它们。

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

这样您就可以确保捕获了所有必需的数据。

于 2012-12-13T01:27:55.547 回答
1

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

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

于 2012-12-13T01:28:39.777 回答