【问题标题】:Where should my SQL code go in MVC我的 SQL 代码在 MVC 中应该放在哪里
【发布时间】:2015-04-14 16:30:47
【问题描述】:

我刚开始学习 MVC 设计模式,我想知道我的 SQL 代码应该去哪里。

例如,假设我有一个看起来像这样的注册表单结构

type Form struct {
 Username string
 Password string
}

我假设表单结构是模型的一部分,所以我有一些与表单相关的功能,在用户提交表单后,数据被放入数据库,所以我的函数看起来像这样

func (f *Form) registerUser() {
   // SQL code goes here
}

这是最好的方法吗?我一直在寻找利用 MVC 模式的开源 Golang Web 应用程序,但我无法找到一个我完全理解的。

【问题讨论】:

    标签: sql model-view-controller go


    【解决方案1】:

    在模型-视图-控制器模式中......

    模型适用于实体,您的所有类都代表真实世界的对象。

    视图是用户可以看到并与之交互的表单和所有图形。

    Controller用于控制器类,是程序的所有逻辑,对于您所说的sql代码,您可以实现dao pattern并将所有sql代码放在控制器包中,将数据库类放在实体包中(我将它留在 Controller 类中)。

    【讨论】:

      【解决方案2】:

      我假设表单结构是模型的一部分,所以我有一些与表单相关的功能,在用户提交表单后,数据被放入数据库,所以我的函数看起来像这样

      Model 在 MVC 应用程序架构中的另一个用途是存储可重用代码。所以,是的,您可以将表单存储在 Model 中(例如,如果您在视图中多次重用它),但这比将表单存储在 View 中并稍后重用它没有意义。

      执行回溯类似于

      1. 控制器处理请求 - 就我个人而言,我在这里执行业务逻辑,并且(如有必要)调用 ...
      2. 模型处理从 DBMS 中检索的所有数据、验证等,并将处理后的数据返回给 Controller 和 ...
      3. 随后会显示带有相应参数(用户数据、模板、验证器结果等)的视图。
      4. 用户填写表单并将输入提交给 Controller 和 ...
      5. 转到 1. 点

      【讨论】:

      • 不,DBMS 只是模型的另一个视图。 “数据库就是模型”的思想被 数据库包装器如 Hibernate 和 Rails 的 ActiveRecord 所推广。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多