可扩展属性的处理

要新添加一些类而不必修改原先的设计,我们可以采用很多设计模式来实现,例如创建模式中的抽象工厂。
然而大家是否经常为一些数据库中字段的灵活变化而烦恼?客户今天想增加什么字段,明天想去掉某个字段,总之,在他们的业务和实际的需求中,报表会不时的修改、增删某些字段。那么我们怎么解决这些灵活变化带来的影响呢,显示频繁的修改数据库是想当可怕的!记得wss、sps里添加栏目模块内容等都是灵活实现的,不必手动去修改数据库结构,他们是怎么实现的?没有去仔细研究过。

但是最近公司项目中就有这种变态需求,同事采用了一种简单有效的措施(虽然还是会对程序做响当的修改,但至少不必修改数据库了)。
方法是这样的:
数据模型层中,定义一个名称/值集合,用来存放那些可扩展的字段,然后采用序列化成一个2进制数组,再存放到数据库中的可扩展属性字段;取出来用的时候采用反序列化将其反序列化为名称/值集合。集合的操作就不必说了吧。
这个方法可以用一个数据库字段存放多个(不确定的)属性,基本实现了需求。

大家还有其他高招吗?

转载于:https://www.cnblogs.com/MichaelJ/archive/2005/08/03/206677.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值