我有一个项目:要求是可以通过模板导入数据的,并且模板可能会改变,但是变化不多,同时数据库的字段也会改变,并且改变后的模板和数据库必须必影响以前的数据,大家有什么好的建议吗?非常感谢

解决方案 »

  1.   

    需要更详细的需求描述,比如模板形式是文本文件、excel或者其他,大致格式如何?希望用什么方式倒入?在客户端还是在服务器端?等等
      

  2.   


    通过应用程序来做, 比如java。
      

  3.   

    抱歉,我说的不详细.
    用户导入的是Excel,格式是有多层表头的.导入数据客户是想在客户端导入.我们的项目是B/S的.
      

  4.   

    XML Serialization / Deserializationsample
    http://msdn.microsoft.com/en-us/library/ms950721.aspx
      

  5.   

    kettle:一个新的开源ETL工具
    用这个工具吧,不错,我们一直在用
      

  6.   

    模板和表结构会变化,这很正常。你在设计中要首先决定模板放在哪里。
    *. 可以模板存贮在数据库中供用户在界面中选择。
    *. 也可以把模板放在客户端,比如我做过的一个项目中,模板是放在EXCEL文件中的。每个EXCEL文件内附一个模板页,而用户数据则放在另一页中。如果模板变化,就发布新的EXCEL文件供用户输入数据。
      

  7.   

    非常感谢,我还有几点不是很明白的,假如说用户2008年用的一种模板,到2009年用户需要在模板上加几个字段,数据库也加几个列  在不改变程序的情况下应该怎么做?这点我比较迷茫,我能想到的是通过xml来映射.您有好的方法吗?
      

  8.   

    用xml也好,用数据库中独立的表也好,用excel中某个指定的sheet也好,基本点就是你需要存储数据源和表列之间的对应关系(data mapping)。
    数据源 -> 表
    数据源列 -> 列然后你的程序应该设计为根据这个定义好的对应关系从数据源读数据,然后存入相应的表列。对应关系随着用户需求的变化而变化,就像你说的"2008年用的一种模板,到2009年用户需要在模板上加几个字段,数据库也加几个列"的时候,你需要的就是对对应关系作相应的调整。