Php 在MySQL数据库中存储巨大的表单提交

Php 在MySQL数据库中存储巨大的表单提交,php,mysql,Php,Mysql,我创建了一个包含50-100多个表单字段的表单,需要将其保存在MySQL数据库中。我正在寻找一种将这些数据存储在MySQL数据库中的有效方法。据我所知,我有两个选择,我正在寻找最好/最有效的方法 选择1 创建一个包含100列的form_submissions表,并用一个查询将其插入 选择2 创建一个包含四列的key=>value表,例如这些列:id、form\u id、key、value,其中每个表单提交根据填写的字段数量查询50-100次 看看上面的选项,选项2肯定感觉更好,因为在数据库中保存

我创建了一个包含50-100多个表单字段的表单,需要将其保存在MySQL数据库中。我正在寻找一种将这些数据存储在MySQL数据库中的有效方法。据我所知,我有两个选择,我正在寻找最好/最有效的方法

选择1

创建一个包含100列的form_submissions表,并用一个查询将其插入

选择2

创建一个包含四列的key=>value表,例如这些列:id、form\u id、key、value,其中每个表单提交根据填写的字段数量查询50-100次


看看上面的选项,选项2肯定感觉更好,因为在数据库中保存formdata会更容易,而且在我看来,没有一个包含太多列的庞大表。

您的情况不清楚。默认方式是每个实体/表单一个表,每个属性/字段一个列选项1。您应该有很好的理由使用EAV模型选项2。但你的问题中没有这样的问题。100个字段没有那么多。请注意,实现一个体面的EAV设计根本不是一项简单的任务。如果您想正确地实现模式,就需要在模式中实现模式。而且做错事太容易了。因此,在数据库中保存表单数据会更容易,这是一个梦想。

是的,选项2在这里可能最有意义。此外,它还可以防止您在第一次需要有101个字段的表单时,不得不更改表结构和可能的查询-@我就是这么想的。但是,表单每天提交50-100次,这会不会导致性能方面的问题?每天提交50-100次几乎是零。您确定需要一个包含100个字段的表吗?我怀疑一些数据可能会在关系表中被重构,从而减少fieldsSee的数量,这表示我们的数据库服务器通常每秒处理1000个插入。这还不够。所以我去寻找提高MySQL插入速度的方法,最终能够将这个数字提高到每秒28000个插入。你有没有关于EAV模型可能出错的例子?因为设置起来似乎并不困难,所以两个总共有7列的表基本上是实现这一目标的最低要求work@ArkoElsenaar两个表意味着根本没有元数据。您还可以将数据保存在文本文件中。这样做会出现什么问题?@ArkoElsenaar在EAV表上尝试以下查询:从fromdata中选择*字段1='x',字段2='y'顺序按字段3限制10偏移量30最常见的EAV模型也会将所有内容存储为字符串,这意味着使用小数计算时会失去精度,此外,您无法强制执行数据完整性和数据类型,以及应用程序需要哪些数据才能正常工作您需要编写更多的应用程序代码或数据库触发器来检查所有这些@阿科尔斯纳尔这就是保罗最有可能谈论的。。EAV模型会出什么问题?问题应该是,当在RDMS中使用EAV设计时,什么才是正确的,这样我们就可以少打字了