Skip to content

数据库表设计

在 FormCreate 环境中管理表单时,一个合理的数据库设计至关重要,以便存储表单设计的规则以及用户提交的数据。下述内容详细阐述了几种核心数据库表设计,帮助您更有效地组织和管理数据。

1. 字段表 (fields)

此表用于存储表单中每个字段的详细信息。以下是推荐的字段:

字段名数据类型描述
idINT主键ID,自增
fieldVARCHAR字段名称,用于标识字段的唯一标识
titleVARCHAR字段显示标签,用户界面上显示的文本
typeVARCHAR字段类型(例如:input, select, checkbox)
optionsJSON字段的附加属性(例如:选择框的选项)
propsJSON组件配置项(例如:{ required: true, min: 5 })
valueJSON字段的值
ruleJSON组件的完整规则
form_idINT对应表单表的ID,外键关联至 forms
created_atDATETIME字段创建时间
updated_atDATETIME字段更新时间
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)

此表用于存储每个表单的整体信息,包括名称、描述以及设计的规则等:

字段名数据类型描述
idINT主键ID,自增
titleVARCHAR表单名称,用于标识表单的唯一标识
descriptionTEXT表单的描述信息
rulesJSON表单的规则和字段的整体配置数据,通常包含多个字段的配置
optionsJSON表单的配置数据(例如:布局、尺寸、全局数据等)
created_atDATETIME表单创建时间
updated_atDATETIME表单更新时间
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)

此表用于存储用户提交的每个字段的具体值。每次表单提交都会产生一条新的纪录,用于追踪表单的历史记录。

字段名数据类型描述
idINT主键ID,自增
form_idINT表单ID,外键关联至 forms
field_idINT字段ID,指向 fields
field_nameVARCHAR字段名称,指向 fields 表中的 field
field_valueJSON用户提交的字段值
created_atDATETIME数据创建时间
updated_atDATETIME表单更新时间
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 的应用搭建一个良好的数据存储基础,方便存储和管理表单设计与用户数据。