课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
领域模型设计是目前大多数软件开发程序员都在学习的一个软件开发设计方式,下面我们就通过案例分析来了解一下,领域模型设计应用都有哪些常见问题。
简单的从流程上看,我们仅用在进行领域建模的时候需要对这对需求进行数据。而这之后需求就被抽象称为领域模型了,所以之后的程序设计和数据库设计就只用基于领域模型进行设计就可以了。而领域模型一般用类图的设计,所以其中类的属性可以指导数据库中需要的字段,又可以通过类中的方法指导程序设计。
这时候我们发现,数据库的设计仅由领域模型指导,从而数据库设计就弱化为了领域对象的持久化设计。
那么什么叫做领域对象持久化呢?
显然在领域模型设计中,对领域的增删改即对领域对象的增删改。如果不考虑数据丢失的问题,则领域对象完全可以在内存中存放。而如果考虑到持久化的问题,可以将暂时不用的数据拆解为一个或多个数据库表进行存储,当需要使用的时候再从数据库中将领域对象查询并组装起来。
所以,作为领域对象,其实是不关心具体的数据库持久化实现的。及时重新的对表进行拆分,只要可以还原出来领域对象,则对于上层业务是无感知的。
由于领域建模设计的单元是类,同时也是对象,如果如果是使用NoSQL数据库来直接对整个对象进行存储,则就相当于在查询数据前完成了“join”操作,直接将对象存入到数据库中。当需要对数据查询时,就不需要再“join”而能直接根据需要检索单表中的字段。
同时,由于NoSQL的非结构化特性,使得即便像上文所提到的“继承关系一种建表方式”那样将多个子类合并到一张表,也不会出现表“稀疏”,从而影响存储与查询性能。
所以,NoSQL数据库的主要思想是将对象直接存入单表,从而避免查询数据时的join操作。
我们在进行完毕领域建模后,进行数据库设计的时候,可以直接参考模型类的关联关系。如果是传统关系则可以直接映射,如果是继承关系则需要考虑一下业务场景。但是对于聚合根,也可以直接存储为NoSql数据,减少了查询聚合时的join次数,从而减少了数据库压力。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。