动态可编辑HTML表格对应DB存储的表结构设计咨询
动态资产池会计表格数据库设计方案
针对你提到的资产池列可动态增减的场景,不要设计固定列的表结构,推荐用行列分离的设计方案,完全适配动态列需求,不需要后续修改表结构:
核心表结构设计
一共4张表即可覆盖所有需求,固定行科目可复用,资产池可任意增删:
report_main填报主表,存储整张填报单的全局信息
核心字段:
report_id主键,可设为自增ID或UUIDreport_period填报周期,例:2024Q3、2024年9月operator填报人姓名/IDcreate_time填报时间status可选,填报状态:草稿/已提交/已审核
account_item_config会计行科目配置表,存储表格固定的行内容(所有报表通用,不需要重复录入)
核心字段:
item_code主键,会计科目编码,例:1001对应流动资产、2001对应负债item_name会计科目名称item_order行排序字段,控制前端展示的行顺序is_total标记位,标识当前行是否为合计行,方便前端自动计算
asset_pool_config资产池配置表,存储动态增减的资产池列(对应你场景里的动态列)
核心字段:
pool_id主键report_id外键,关联report_main的report_id,标识所属填报单pool_name资产池名称,例:资产池1、XX信贷资产池pool_order列排序字段,控制前端展示的列顺序
report_cell_data单元格数据表,存储每个行科目对应每个资产池的数值
核心字段:
data_id主键report_id外键,关联所属填报单pool_id外键,关联所属资产池列item_code外键,关联所属会计行科目cell_value数值,用DECIMAL(18,2)类型存储,避免会计计算精度丢失remark可选,单元格备注信息
配套约束与优势
- 可以给
report_cell_data加唯一约束:UNIQUE(report_id, pool_id, item_code),避免同一个报表同一个资产池同一个科目出现重复数据 - 资产池增删只需要操作
asset_pool_config表的记录,完全不需要修改表结构 - 后续数据统计非常灵活,比如要统计所有资产池的流动资产总和,直接按
item_code分组聚合即可 - 前端渲染逻辑清晰:先查当前报表的基础信息,再查资产池列表按
pool_order排序生成列头,再查行科目列表按item_order排序生成行,最后匹配report_cell_data的内容填充到对应单元格即可
内容的提问来源于stack exchange,提问作者AbdAlhadi Othamn
相关产品推荐
相关产品推荐

