如何设计客户自定义字段的功能

CQP 2007-10-24 04:49:43
如何设计客户自定义字段的功能

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

定义好了.
客户在使用的时候,可以跟正常的字段一样使用..对于这样的方案应该如何设计呢?
...全文
412 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
cat_hsfz 2007-11-01
  • 打赏
  • 举报
回复
你可以选择动态修改表,也可以选择在一张大表内冗余非常多的字段。Sharepoint的做法是后者,一张表内各种数据类型都有50个字段,另外开一张表来记录每个字段代表什么。
vrhero 2007-11-01
  • 打赏
  • 举报
回复
最好的办法是XML数据类型...运行时修改数据库结构不是个好主意...
hometohome 2007-11-01
  • 打赏
  • 举报
回复
ALTER TABLE dbo.aaaaa ADD newfild nchar(10) NULL --新增字段
ALTER TABLE dbo.aaaaa DROP COLUMN delfild --删除字段
--修改字段
EXECUTE sp_rename N'dbo.aaaaa.oldfild, N'Tmp_newfild_1', 'COLUMN'
EXECUTE sp_rename N'dbo.aaaaa.Tmp_newfild_1', N'newfild', 'COLUMN'

用sql就可以实现,关键是查询提取的时候怎么办呢?比较麻烦啊
lsmsky 2007-10-31
  • 打赏
  • 举报
回复
序列化只能做一些无关紧要的数据。如果要查询这个字段的数据。就不好办了。
所以建议不要用序列化。
glboy12 2007-10-31
  • 打赏
  • 举报
回复
顶上去,关注一下这个问题,
CQP 2007-10-31
  • 打赏
  • 举报
回复
up
CQP 2007-10-31
  • 打赏
  • 举报
回复
up
hyde100 2007-10-26
  • 打赏
  • 举报
回复
鼎,上面都说的很好
CQP 2007-10-26
  • 打赏
  • 举报
回复
up
520luoxp 2007-10-25
  • 打赏
  • 举报
回复
cceon 2007-10-25
  • 打赏
  • 举报
回复
wuxing2006 2007-10-24
  • 打赏
  • 举报
回复
用序列化来实现 方便
0xff 2007-10-24
  • 打赏
  • 举报
回复
数据库部分比较简单~
增加一个表A保存客户自定义字段的信息(表名、字段名、类型、现实名称、表现类型等)
再增加一个或多个A的外键表保存不同表现类型的自定义数据(如枚举信息等)

最后,针对所有有需要自定义字段的数据表,都增加一个外键表,用来保存增加的自定义字段数据
(最好是统一命名,如增加统一的后缀,以方便程序处理)

程序中的处理就是需要组合SQL语句,因为把自定义部分的字段独立出来了,只要组成联接查询语句就好了。

麻烦的只是在表现层,你可以在页面显示时按照字段的表现类型来一一处理~ 如果封装得好点的话,就基本
没什么额外工作了……
NekChan 2007-10-24
  • 打赏
  • 举报
回复
增加额外的表专门处理这样的数据,根据数据不同的分类(number、varchar2……)放不同的地方,然后使用ID引用就可以了。
copico 2007-10-24
  • 打赏
  • 举报
回复
最好的办法就是拼字符串

就是把用户设计的东西你拼成一个字符串,然后用 exec 运行

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧