首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么实现能够让客户自定义字段

2012-01-20 
如何实现能够让客户自定义字段。我现在要做一个多用户系统,准备实现让用户自定义字段的功能,比如用户可以为

如何实现能够让客户自定义字段。
我现在要做一个多用户系统,准备实现让用户自定义字段的功能,比如用户可以为自己的产品设定公司自己特定的属性。我现在考虑了几个方案,第一是建一个表,提供用户自己修改表字段的显示名字,但是这样字段类型是死的,并且字段数量也是有限的。第二种是给每个用户建一个附加表,然后根据用户的设置直接修改表的结构,但是这会受到一个数据库总表数量的限制,第三种是给每个用户建一个库,但是这样同样会遇到上面的问题。第四种是把行转换成列,但是这会造成编程的难度,同时将会大大的影响性能。

哪位有好的解决方案,既能方便使用(特别是好查询,用户自定义的字段要允许查询),同时又能保证性能。

[解决办法]

预设足够用个数的字段,如:100个字段,F1,F2,F3,F4...

另外单独建表,定义这100个字段的数据类型和标题。

如:

字段名 数据类型 标题
F1 数值 年龄
F2 字符 身份证号

通过程序动态的生成查询或操作表的SQL语句。



[解决办法]
三张表 t_table,t_column,t_value
t_table,t_column, 类似sqlserver 的系统表,t_value用来指定某行某列的值,需要定义5个不同的数据类型的列,数据类型在t_column中指定,
通过存储过程,将t_value 根据t_table,t_column,整理成视图查询.同时,也可以通过存储过程或者触发器来更新视图.
效率的话,我的数据大约是7个表62个列,t_value 3万多一点,查询效率可以接受,(因为动态,也没有加索引)


热点排行