如何设计客户自定义字段的功能
如何设计客户自定义字段的功能
在系统开发中.我们经常会遇到一个问题,就是允许客户对表自定义字段,并跟其他的字段一样使用.比如:
显示名称:新增字段属性显示的名称
数据类型:比如是数字型,字符型,日期型等.
长度:数字型的长度.字符型的长度等.
可选值:如果是枚举型的,应该定义可选的值.界面上将以下拉框的方式显示
定义好了.
客户在使用的时候,可以跟正常的字段一样使用..对于这样的方案应该如何设计呢?
------解决方案--------------------最好的办法就是拼字符串
就是把用户设计的东西你拼成一个字符串,然后用 exec 运行
------解决方案--------------------增加额外的表专门处理这样的数据,根据数据不同的分类(number、varchar2……)放不同的地方,然后使用ID引用就可以了。
------解决方案--------------------数据库部分比较简单~
增加一个表A保存客户自定义字段的信息(表名、字段名、类型、现实名称、表现类型等)
再增加一个或多个A的外键表保存不同表现类型的自定义数据(如枚举信息等)
最后,针对所有有需要自定义字段的数据表,都增加一个外键表,用来保存增加的自定义字段数据
(最好是统一命名,如增加统一的后缀,以方便程序处理)
程序中的处理就是需要组合SQL语句,因为把自定义部分的字段独立出来了,只要组成联接查询语句就好了。
麻烦的只是在表现层,你可以在页面显示时按照字段的表现类型来一一处理~ 如果封装得好点的话,就基本
没什么额外工作了……
------解决方案--------------------用序列化来实现 方便