2010-05-29 71 views
0

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

因此,例如,假设你有一个管理Order对象,使得其提供getOrder,saveOrder等方法和同样的用户对象类似的控制器的订单控制器类。

首先您是否还需要这些控制器?如果你只是将SQL Alchemy视为处理数据访问的“事物”。当你有一个干净的声明方式来获取和持久化对象而无需直接写SQL时,为什么还要使用面向对象的控制器。

好一个原因可能是,也许你可能想直接SQL或暴风或任何其他替换SQL炼金术。因此,将控制器类用作中间层可以帮助限制需要更改的内容。

反正 - 回到主要问题 - 所以假设你有这两个控制器,现在,让我们看看订单,为一组特定的用户满足某些条件的名单。你如何去做这件事?一般来说,你不希望控制器穿越域 - 订单控制器只知道订单和用户控制器只是关于用户 - 它们不会互相混淆。您也不希望获取匹配的所有用户,然后向订单控制器提供一大串用户标识以查找匹配的订单。

需要的是一个连接。这里是我被卡住的地方 - 这似乎意味着控制器必须跨域,或者它们应该完全废除,您只需通过SQL Alchemy直接进行连接,并根据需要获取生成的用户和/或订单对象。思考?

回答

2

控制器旨在为您的快速封装功能。不要束缚你的双手。如果你想加入,只需加入。使用您认为符合逻辑的控制器进行查询。