首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新的web项目设计模式规范

新的web项目设计模式规范
EN

Stack Overflow用户
提问于 2022-06-09 11:40:13
回答 1查看 65关注 0票数 3

我有一个有50多个表的关系数据库。他们有不止一种关系,一对一,不止一种。

在我将在这个数据库基础上创建的新MVC项目中,代码优先还是数据库首先是更有效的?

根据最佳实践逻辑,在这样大的(总共有2 billion+数据)的地方,哪一个是首选的?

问候..。

EN

回答 1

Stack Overflow用户

发布于 2022-06-10 19:55:17

在我看来,代码首先应该是更好的情况,因为您主要是为应用程序构建软件,而不是数据。“代码第一”的意思是专注于您的问题域和域模型。访问数据库是持久化应用程序状态的实现细节,在软件设计的早期阶段不应提及。

类似的概念可以在领域驱动的设计和清洁架构中找到.

在您的例子中,尽管数据已经存在于数据库中,但主要的问题仍然是:您的新项目是为了什么?

Case1:如果它只是用于读取数据,例如表示,那么您可以将数据库中的数据视为数据模型;这可能符合“数据库优先”的概念。但是,由于数据模型是解决问题的模型,我仍然会首先将其视为代码。

Case2:另一方面,如果有一些特定的需求,您应该首先构建域模型,以关注应用程序的需求和问题,而不是数据库。否则,您可能会发现您的应用程序被数据库的架构卡住了,导致复杂的应用程序逻辑,这取决于您的问题域和数据之间的差异,因为您的应用程序关注的不是问题,而是数据。为了访问数据库,您可能需要的是数据Mapper模式。除此之外,您还可以实现存储库模式,它将为域模型中的实体设计。

关于你提到的效率问题:

假设您是前面提到的情况2。在这种情况下,您可以查看命令查询责任隔离(CQRS),它将查询(用于读取数据的操作)与命令(更改系统状态的操作)隔离开来。将读写职责分离到您的系统可以提高应用程序中演示文稿的效率。

总之,如果不实现只读应用程序,则没有数据库驱动的设计.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72559623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档