最近项目 个人对数据库动态字段 拓展的解决办法
在表2中拓展字段默认10个; 表1中添加时候判断只能<=10个; 表1中添加扩展信息跟表2中拓展字段进行关联。用Datable来进行动态展示存储转换。
1公司基本信息配置表
comapanyId 名称 默认值 关联字段
001 性别 男 Column1
001 籍贯 中国 Column2
2公司员工配置默认表
companyid employeeId employeeName Column1(拓展字段1) Column2(拓展字段2) Column3(拓展字段3) Column4(拓展字段4)
001 101 张三 男 中国
001 102 李四 女 中国
网上总结的一些办法:
1. 表动态添加字段。(排除)
2. 先预留拓展字段,到时再用 进行映射(优点:相较于其他做法,比较稳定,不用行转列,不用解析XML。 缺点:会有大量的空的字段,需要记录映射关系,查询时比较复杂。)
3. 使用 XML 字段保存。(优点:扩展容易,维护容易。缺点:在查询或解析时需要大量的对字符串的处理,性能上有问题。)
4. JSON 格式保存。(同上)
5. 属性字段行存储(键值存储)改列为行 用另外一个表存放定制字段 展示时候 行转列 列转行 (优点:扩展容易,结构简单。 缺点:数据量比较大,查询时可能比较慢。)
SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
https://www.cnblogs.com/gaizai/p/3753296.html#_labelFour
一些参考文章: