数据库表设计
在 FormCreate 环境中管理表单时,一个合理的数据库设计至关重要,以便存储表单设计的规则以及用户提交的数据。下述内容详细阐述了几种核心数据库表设计,帮助您更有效地组织和管理数据。
1. 字段表 (fields
)
此表用于存储表单中每个字段的详细信息。以下是推荐的字段:
字段名 | 数据类型 | 描述 |
---|---|---|
id | INT | 主键ID,自增 |
field | VARCHAR | 字段名称,用于标识字段的唯一标识 |
title | VARCHAR | 字段显示标签,用户界面上显示的文本 |
type | VARCHAR | 字段类型(例如:input, select, checkbox) |
options | JSON | 字段的附加属性(例如:选择框的选项) |
props | JSON | 组件配置项(例如:{ required: true, min: 5 }) |
value | JSON | 字段的值 |
rule | JSON | 组件的完整规则 |
form_id | INT | 对应表单表的ID,外键关联至 forms 表 |
created_at | DATETIME | 字段创建时间 |
updated_at | DATETIME | 字段更新时间 |
sql
CREATE TABLE fields (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID,自增',
form_id INT COMMENT '对应表单表的ID',
field VARCHAR(32) NOT NULL UNIQUE COMMENT '字段名称,用于标识字段的唯一标识',
title VARCHAR(32) NOT NULL COMMENT '字段显示标签,用户界面上显示的文本',
type VARCHAR(32) NOT NULL COMMENT '字段类型(例如:input, select, checkbox)',
options JSON COMMENT '字段的附加属性(例如:选择框的选项)',
props JSON COMMENT '组件配置项(例如:{ required: true, min: 5 })',
value JSON COMMENT '字段的值',
rule JSON COMMENT '组件的完整规则',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '字段创建时间',
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '字段更新时间'
) COMMENT='表单字段信息表';
2. 表单表 (forms
)
此表用于存储每个表单的整体信息,包括名称、描述以及设计的规则等:
字段名 | 数据类型 | 描述 |
---|---|---|
id | INT | 主键ID,自增 |
title | VARCHAR | 表单名称,用于标识表单的唯一标识 |
description | TEXT | 表单的描述信息 |
rules | JSON | 表单的规则和字段的整体配置数据,通常包含多个字段的配置 |
options | JSON | 表单的配置数据(例如:布局、尺寸、全局数据等) |
created_at | DATETIME | 表单创建时间 |
updated_at | DATETIME | 表单更新时间 |
sql
CREATE TABLE forms (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID,自增',
title VARCHAR(64) NOT NULL UNIQUE COMMENT '表单名称,用于标识表单的唯一标识',
description TEXT COMMENT '表单的描述信息',
rules JSON COMMENT '表单的规则和字段的整体配置数据,通常包含多个字段的配置',
options JSON COMMENT '表单的配置数据(例如:布局、尺寸、全局数据等)',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '表单创建时间',
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '表单更新时间'
) COMMENT='表单信息表';
3. 字段数据表 (form_data
)
此表用于存储用户提交的每个字段的具体值。每次表单提交都会产生一条新的纪录,用于追踪表单的历史记录。
字段名 | 数据类型 | 描述 |
---|---|---|
id | INT | 主键ID,自增 |
form_id | INT | 表单ID,外键关联至 forms 表 |
field_id | INT | 字段ID,指向 fields 表 |
field_name | VARCHAR | 字段名称,指向 fields 表中的 field |
field_value | JSON | 用户提交的字段值 |
created_at | DATETIME | 数据创建时间 |
updated_at | DATETIME | 表单更新时间 |
sql
CREATE TABLE form_data (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID,自增',
form_id INT NOT NULL COMMENT '表单ID',
field_id INT NOT NULL COMMENT '字段ID,指向 fields 表',
field_name VARCHAR(32) NOT NULL COMMENT '字段名称,指向 fields 表中的 field',
field_value JSON COMMENT '用户提交的字段值',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '数据创建时间',
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '表单更新时间'
) COMMENT='用户提交的表单字段数据表';
通过上述数据库表结构示例,您可以为基于 form-create 的应用搭建一个良好的数据存储基础,方便存储和管理表单设计与用户数据。