1

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

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

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

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

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

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

4

1 回答 1

2

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

于 2010-05-29T06:35:07.047 回答