如何设计客户自定义字段的功能 在系统开发中.我们经常会遇到一个问题,就是允许客户对表自定义字段,并跟其他的字段一样使用.比如:       
    显示名称:新增字段属性显示的名称       
    数据类型:比如是数字型,字符型,日期型等.       
    长度:数字型的长度.字符型的长度等.       
    可选值:如果是枚举型的,应该定义可选的值.界面上将以下拉框的方式显示       
        
    定义好了.       
    客户在使用的时候,可以跟正常的字段一样使用..对于这样的方案应该如何设计呢?       

解决方案 »

  1.   

    CUSTOM 自定义字段表
    字段 数据类型 描述 约束
    CUSTOM_ID INT 自定义表编号 自动增1 主键
    CUSTOM_MODULE VARCHAR(50) 所属模块
    CUSTOM_NAME VARCHAR(50) 自定义字段名称 非空
    TABLE_NAME VARCHAR(50) 所属表名 非空
    CUSTOM_TITLE NVARCHAR(50) 字段显示标题 非空
    TAXIS_CODE INT 排序编号 非空,默认值0
    CUSTOM_CONTROL VARCHAR(50) 输入控件名称,如TEXTBOX 、LISTBOX等 非空, 
    CUSTOM_TEXT NVARCHAR(500) 控件默认文本或显示文本,有多项时以“,”分隔
    CUSTOM_VALUE NVARCHAR(500) 控件显示文本所对应的值,有多项时以“,”分隔,一般用于下拉列表框,单或复选按钮等
    ISSELECT VARCHAR(1) 是否作为查询字段,强烈建议用户不启用该功能,因为这个字段的查询速度会非常的慢 非空,默认0
    0否
    1是
    FLAG VARCHAR(1) 是否启用 非空,默认0
    0否
    1是
    REMARK NVARCHAR(200) 备注 CUSTOM_VALUES 自定义字段值表
    字段 数据类型 描述 约束
    CVALUE_ID INT 自定义值表编号 自动增1 主键
    CUSTOM_ID INT 所属自段编号 非空,CUSTOM表外键CUSTOM_TYPE VARCHAR(50) 当前控件类型 非空
    TABLE_PK_VALUE INT 所属表的主键 非空,
    CVALUE NVARCHAR(500) 值 在有多个值时以“,”分隔 非空
    REMARK NVARCHAR(200) 备注
    请大交多提富贵意见~
      

  2.   

    你这是动态建表,可以借鉴一下sql的系统表
    sysobjects--表及函数等对象
    syscolumns--列对象
    syscomments--表及函数内容等
    sysindexes--索引
    systypes--数据类型