说实话,我以前从没考虑这两者之间的关系,只是最近工作当中屡次遇到对这两者误用导致的问题,促使我思考这些问题,我遇到的问题有:
1.DBA在建立数据模型时,为了在编码时方便,频繁地在一些进行数据冗余(在项目中,我就遇到过到处冗余过一个字段TypeId),而做这些的目的仅仅是为了编码时的方便(不用关联就可以取得一些字段值)与性能(若O/M,可以利用cache来提高性能),若没有使用O/M时,这种冗余还是可以谅解的,若在使用O/M后,还使用这种数据冗余,反而对编写映射文件有比较大的影响,对于数据模型中很难获得的字段.在对象模型下很好获得,即使在很多getXXX().getXXX()操作,也可以作一些转接口来减少getXXX()的长度
2.建立数据模型的人与编写映射文件的人不是同一人, 即使在这个阶段可以采取一些非优雅手段解决了那些冗余字段,但是到了编码时,编码人员还是很别扭,尤其是那些冗余字段的处理,很郁闷
3.除了数据冗余,由于数据建模人员对O/M知识的匮乏,建立一些冗余表,这种问题比字段冗余更愚蠢
4.对于那些说进行数据冗余比O/M效率高的人,我想若O/M没有使用cache的话,这个可能是个问题
1.DBA在建立数据模型时,为了在编码时方便,频繁地在一些进行数据冗余(在项目中,我就遇到过到处冗余过一个字段TypeId),而做这些的目的仅仅是为了编码时的方便(不用关联就可以取得一些字段值)与性能(若O/M,可以利用cache来提高性能),若没有使用O/M时,这种冗余还是可以谅解的,若在使用O/M后,还使用这种数据冗余,反而对编写映射文件有比较大的影响,对于数据模型中很难获得的字段.在对象模型下很好获得,即使在很多getXXX().getXXX()操作,也可以作一些转接口来减少getXXX()的长度
2.建立数据模型的人与编写映射文件的人不是同一人, 即使在这个阶段可以采取一些非优雅手段解决了那些冗余字段,但是到了编码时,编码人员还是很别扭,尤其是那些冗余字段的处理,很郁闷
3.除了数据冗余,由于数据建模人员对O/M知识的匮乏,建立一些冗余表,这种问题比字段冗余更愚蠢
4.对于那些说进行数据冗余比O/M效率高的人,我想若O/M没有使用cache的话,这个可能是个问题