0

情况:用于 HTML 表单提交的 SQL 数据存储。

场景1: 1个表格,每个表格字段为一个表格字段(表格)。

在此处输入图像描述

场景 2: 2 个表 - 第一个具有 id 和时间戳 (form_submission) 的表。第二个表,id,fk to form_submission,field_title,field_value(form_field)。仅当 HTML 字段具有值时才插入数据。

在此处输入图像描述

哪个需要更多内存?

在场景 1 中...每次提交只有 1 条记录,但每条记录将有多个空值。

在场景 2... form_field 表中的 5+ 条记录以及从 form_submission 表中提交的时间。

旁注:我们每年只收到一万份表单提交。

4

1 回答 1

1

假设大多数用户填写了大部分字段,那么是的,更规范化的表单将占用更多空间/内存(特别是因为时间戳 - 我真的希望它是DATETIME/ DATETIME2,这是一个糟糕的名字,不管)。

就个人而言,对于 HTML 提交表单(没有“子”数据),我可能会为表单制作一个表格;EAV 表可能更难查询。非必需列可以简单地默认为空。但是,如果您正在构建更复杂的系统(例如客户管理),则需要以不同的方式拆分事物。

于 2012-11-30T21:12:27.507 回答