作为一个新手,在大学里面自学过Java编程,也做过几个用SSH的网站。但是没有机会做比较大型的项目。
在学校里做这些项目的时候,基本上都是先设计完所有功能,再进行编码,没有遇到需求改动,也没有项目上线之后去加入新的功能。
我的疑问是,如果一个项目需要后期不断加入新的功能,那么它的数据库是否需要在一开始就设计好呢?如果不是,那么如何做到在数据库设计改动之后,保证原数据不丢失的情况下进行数据迁移呢?(尤其想问hibernate是怎么做的)。
作为一个新手,在大学里面自学过Java编程,也做过几个用SSH的网站。但是没有机会做比较大型的项目。
在学校里做这些项目的时候,基本上都是先设计完所有功能,再进行编码,没有遇到需求改动,也没有项目上线之后去加入新的功能。
我的疑问是,如果一个项目需要后期不断加入新的功能,那么它的数据库是否需要在一开始就设计好呢?如果不是,那么如何做到在数据库设计改动之后,保证原数据不丢失的情况下进行数据迁移呢?(尤其想问hibernate是怎么做的)。
3 回答2.7k 阅读✓ 已解决
3 回答4.2k 阅读✓ 已解决
8 回答3.8k 阅读
4 回答2.8k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
4 回答1.9k 阅读
1.做之前数据库当然是设计好的,但在做的过程中肯定是会改动的,可能是需求变化,可能是解决方案的变化。
2.这样,你说的数据迁移问题,是发生在项目已经上线了,数据都是又有的话,如果数据库改动非常大,那就通过sql导数据吧,hibernate没那么高级。如果数据库改动不大(这要看数据库设计人员的功力了),那也没什么数据迁移的问题了。代码的地方改改好了。
3.渐进式开发?好的系统维护性很好,可扩展性强,这要在开发的时候在细节的地方就注意起来。“把变化的和不变的隔离开来”,“面向接口编程”,能用一些设计模式想必是极好的,但不要为了设计而设计哦。但实际情况时,一般(注意是一般)的大型项目,维护或者加新的功能,都会让你头疼的。