探讨企业级应用中,如何允许用户增加自定义字段

本文探讨了在软件产品中实现用户自定义字段的各种方法,包括使用预留字段、扩展表、XML、JSON以及动态DDL等方案,并分析了各自的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我所说的用户增加自定义字段,是指最终用户可以通过配置等手段,可以在界面上增加各种类型的想要的字段,这个字段可以用来存储和查询。

例如:有一个客户信息表,原来只有名称和地址,客户想自己添加,生日,分类,地区等字段。
添加完的字段要达到:
1)能保存
2)能查询
3)能用来排序
4)能用来分组统计

我所见到的做法,一般都是通过表里预留字段来做得,例如cust01,cust02等,各种类型都预留一些,一种是直接增加了另一张表,比如xxxx_ext表,里面有大量的cust01,cust02等。

这样作的缺点是,
1)数量是固定的,一旦某个类型的字段,我要添加一大堆,就可能碰到限制了。
2)可读性很差,看数据库的时候,会看到一堆不知道是什么东西的数据,还要找对应关系。[color=red]不知道能不能把这些字段和字段表述做成视图呢?[/color]
3)扩展表的方法会多做一次join,影响效率。

我考虑是不是还有其他的方法。
1)是否可以使用XML。所有自定义的数据都写到XML里面,然后利用数据库提供的XML功能。我不了解数据库提供的XML功能,请有经验的朋友解答一下。
2)和上面类似,使用一个text字段。不过内容可以用其他的格式,比如yaml或者json。比上面的优点是占用空间小了。然后写个函数,专门从里面根据字段名取数据,然后基于这个函数作查询,排序,分组。
3)能不能用动态的DDL,或者自动生成rails的migration,然后停机升级。

不知道大家都是怎么作的?有没有更好的方案?
[color=red]
强调一下,我说的情况是,你把程序开发完了,交给客户,需要给客户提供一个可以自定义字段的功能,然用户增加一些他想要的字段,这个过程中开发人员不再参与.[/color]
大家说自己的方案的时候,最好能够简单描述一下优缺点.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值