【问题标题】:SQL Alchemy MVC and cross controller joinsSQLAlchemy MVC 和交叉控制器连接
【发布时间】:2010-05-29 04:25:06
【问题描述】:

当使用 SQL Alchemy 抽象您的数据访问层并使用控制器作为从该抽象层访问对象的方式时,应该如何处理连接?

例如,假设您有一个管理 Order 对象的 Orders 控制器类,它提供 getOrder、saveOrder 等方法以及类似的 User 对象控制器。

首先,您还需要这些控制器吗?您是否应该将 SQL Alchemy 视为处理数据访问的“对象”。当你有一个干净的声明方式来获取和持久化对象而不必直接编写 SQL 时,为什么还要在那里为面向对象的控制器而烦恼。

嗯,一个原因可能是您可能想用直接 SQL 或 Storm 或其他任何东西替换 SQL Alchemy。因此,让控制器类充当中间层有助于限制那时需要更改的内容。

无论如何-回到主要问题-假设您有这两个控制器,现在假设您想要满足某些条件的特定用户集的订单列表。你怎么做呢?通常,您不希望控制器跨越域 - Orders 控制器只知道 Orders 和 User 控制器只知道用户 - 它们不会相互混淆。您也不想获取所有匹配的用户,然后将大量用户 ID 提供给 Orders 控制器以查找匹配的订单。

需要的是一个连接。这就是我卡住的地方 - 这似乎意味着控制器必须跨域或者应该完全取消它们,您只需直接通过 SQL Alchemy 进行连接,并根据需要获取生成的 User 和/或 Order 对象。想法?

【问题讨论】:

    标签: python model-view-controller sqlalchemy dns controllers


    【解决方案1】:

    控制器旨在封装功能以方便您使用。不要束缚你的手。如果您想加入,只需加入即可。使用您认为逻辑上最合适的控制器进行查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      相关资源
      最近更新 更多