日期:2014-05-17  浏览次数:20840 次

程序已经交给用户使用,后来又修改了数据库结构
自己写的程序已经交给用户使用,后来又修改了数据库结构,包括添加删除字段、创建删除表,但是使用先前版本的用户已经在数据库中导入了很多数据,要给用户使用程序的新版本伴随着要更新数据库,请问只能将原来的数据库覆盖吗,这样的话用户原来导入的很多数据将丢失,重新导入将很费时间,本人新手,不清楚有什么解决方案和成熟的方法,能解决这种后期维护时修改数据库结构而产生的问题,难道数据库结构设计完成时候就不能修改吗

------解决方案--------------------
靠,你删除了字段那就没办法了
只是增加字段还好说
你只能先把老数据库数据导出
然后按照新数据库格式导入了
------解决方案--------------------
最无奈的是删除列
------解决方案--------------------
探讨
请问只能将原来的数据库覆盖吗,这样的话用户原来导入的很多数据将丢失,重新导入将很费时间,本人新手,不清楚有什么解决方案和成熟的方法,能解决这种后期维护时修改数据库结构而产生的问题,难道数据库结构设计完成时候就不能修改吗

------解决方案--------------------
你自己写一个数据库升级脚本,或者你做一个自动升级程序。
------解决方案--------------------
我曾经也干过这事,就是写一个数据库升级的程序,功能就是去修改数据库的结构,这样你原来的数据都会在,个别特殊的比如你以前是bool现在改成byte,那你就需要代码去改改数据。
------解决方案--------------------
数据库脚本,就是将你从旧数据库,升级到新数据库,所有表及表结构做的改变,都用SQL语句表现出来。比如增加一个表(包含表结构)create table,修改一个表 alter table ,删除表 drop table。等

升级程序,就是将这些脚本自动执行的过程,顺带可以对你的原有程序进行一些升级性的改变,比如增删改文件及其内容等。
------解决方案--------------------
我们的项目,更新数据库结构,开发人员写一个*.SQL脚本,调用执行就可以了.建议你从这方面考虑,
------解决方案--------------------
探讨

引用:
写个小程序 自动升级数据库

具体怎么做的能大体说下吗

------解决方案--------------------
其实这个问题不用纠结,任何人都会遇到的。静下心来,慢慢修改,其实东西并不是很多。
我的项目中,我会尽量使用小表(就是每个表字段比较少),而表比较多的这种存储模式。这样的好处在于:如果要增加需求,可以尽量不修改原来的表结构。但是这样做,缺点也是有的,就是在查询的时候,会比较麻烦(可以用视图,结果就是有很多视图)。看各自情况吧。