【发布时间】:2012-02-13 09:05:16
【问题描述】:
在 Django 中,建议的软件架构是将所有业务逻辑和数据访问放在模型中。
但是,有些同事建议数据访问层应该与业务逻辑(业务服务层)分开。他们的理由是,如果使用不同的数据源,数据访问层可以隔离更改。他们还说,存在可以在多个模型中的业务逻辑。
但是,当我开始使用单独的数据访问层和业务逻辑层进行编码时,数据访问层很简单(基本上是定义 db 架构的模型代码)并且似乎没有增加太多价值。
将数据访问从 django 模型中分离出来真的有价值吗,还是 django 已经通过其 ORM 提供了足够的数据访问层?
我正在寻找已经实现了大量 django 应用程序的开发人员,并了解他们的意见。这适用于中小型网络应用程序。
【问题讨论】:
-
数据访问层是ORM。它与模型分开。你不会改变 ORM 的。您将更改数据库引擎;这已经被 ORM 层变得微不足道了。目前尚不清楚您的同事所说的“数据访问层”是什么意思。你能提供更多信息吗?
-
@the_drow: OT:你能停止机器人审查并注意编辑吗? This suggested edit 是一个明显的评论,而不是应该被接受的建议编辑。
-
@MartijnPieters:我已经习惯了这些编辑风格。如果 SO 的文化发生了变化,我并没有意识到这一点。
-
@the_drow:请参阅meta discussion 引发的建议编辑。至少编辑应该有所改进; “希望有帮助”和“编辑”标题没有帮助。我认为该编辑应该是评论,除非您详细了解主题并同意从技术角度来看该编辑是正确的。
标签: django design-patterns django-models data-access-layer business-logic-layer