表單表頭用戶可自定義,字段數量、類型可變,且所有字段參與計算(加減乘除)。技術棧:Spring MVC + JPA,MySQL/Oracle。
-- 主表:固定字段
CREATE TABLE form_main (
id BIGINT PRIMARY KEY,
form_code VARCHAR(50), -- 表單編碼
creator VARCHAR(50),
create_time DATETIME,
status INT
);
-- 擴展表:動態字段(數據字典模式)
CREATE TABLE form_field_value (
id BIGINT PRIMARY KEY,
form_id BIGINT, -- 關聯主表
field_code VARCHAR(50), -- 字段編碼(如:amount, tax_rate)
field_name VARCHAR(100), -- 顯示名稱
field_type VARCHAR(20), -- 類型:string, number, date, formula
field_value VARCHAR(500), -- 統一存字符串,應用層轉換
formula_expr VARCHAR(500), -- 計算公式(如:amount * tax_rate)
sort_order INT
);
field_value 用 VARCHAR,應用層根據 field_type 轉換為對應類型計算。formula_expr,支持引用其他字段代碼。form_field_def 表定義字段類型、校驗規則、默認值、是否必填等。form_id 聚合為 Map<field_code, field_value> 合併主表對象。sort_order 拓撲序執行公式,將結果回寫 field_value。此模式靈活支持字段動態增減、類型擴展、公式計算,是動態表單的經典落地方案。