日期:2014-05-20  浏览次数:20684 次

软件的架构和数据库表结构的设计能否分开进行
本帖最后由 forebeacher 于 2011-11-29 10:58:23 编辑
目前在做一个软件的架构,出现的这样的问题。

业务层中需要持久化的实体类的结构,和设计的数据表的结构很不一样。数据库中用一张Objects的表来表达所有的实体,形成了一个树状结构,每个实体的相关属性用一些Attr_Value表来表达。导致的结果是:每个类不能够和数据表完整对应上,每个类中字段不能够和数据表中的字段对应上。

那么在数据持久层,便很难去用NH等开源框架了,必须自己完全去设计一个持久层和ORM。

各位对这种情况下去设计一个持久层和ORM,有什么想法?目前我也已经设计了一个基本的框架,但是很多细节的问题还没有解决,欢迎大家的讨论。
------解决方案--------------------
一种方法是:为每个需要持久化的实体类,创建一个视图,这对于查询完全没问题。但是视图会涉及到多张表,所以在删除或增加实体对象时就会出现问题。
------解决方案--------------------
自己做板凳吧...
------解决方案--------------------
我首先想问你一个问题,数据库支持按数据字段索引吗?如果不支持,那么还是赶紧逃离这个悲催的项目吧。
------解决方案--------------------
将数据库中的文档(或者说离散的属性网络)反序列化为内存对象,或者将内存对象序列化为数据库中的文档(或者说离散的属性网络),这还是比较简单的。不用纠结,直接编写程序,10分钟必定成功。