1

我正在开发一个基于 Cocoa 的应用程序,它将在用户事务的过程中多次调用 Postgres 数据库(使用 PGSQLKit)。该应用程序是一种信息亭。

我想知道的是在整个应用程序中进行数据库调用的正确方法。本着 MVC 的精神,我知道我应该为从数据库返回的数据创建对象(我打算这样做),然后使用这些对象。我需要澄清的地方是我应该放置我的数据库调用的地方。

基本上它归结为我有这些问题:
- 为了与数据库交互,我应该创建一个单独的数据库控制器类来进行数据库调用吗?我觉得直接从视图控制器进行数据库调用是不合适的。
-假设我创建了一个数据库控制器,我的视图控制器是否应该触发数据库控制器类并以这种方式进行数据库调用?
-当应用程序加载时,我是否应该通过数据库控制器连接到数据,并在用户事务完成时关闭它?我将在整个交易过程中打几个电话,所以我认为我不应该每次都关闭连接。

4

1 回答 1

1

- 为了与数据库交互,我应该创建一个单独的数据库控制器类来进行数据库调用吗?我觉得直接从视图控制器进行数据库调用是不合适的。

正确的。在某些情况下,您甚至可能在数据库控制器之上还有另一层模型对象。大多数应用程序不应该关心数据是否存储在 Postgres 数据库中,而不是其他方式。

-假设我创建了一个数据库控制器,我的视图控制器是否应该触发数据库控制器类并以这种方式进行数据库调用?

一般是的。您的视图控制器将观察模型并在需要数据时告诉模型。该模型将让观察者(包括视图控制器,尽管模型不关心他们是谁)知道相关数据何时可用或发生变化。

-当应用程序加载时,我是否应该通过数据库控制器连接到数据,并在用户事务完成时关闭它?我将在整个交易过程中打几个电话,所以我认为我不应该每次都关闭连接。

这是数据库控制器的内部细节。通常这种对象会保持长期的连接。通常,该连接是在模型第一次被要求从数据库中获取它需要的数据时建立的,而不是“在应用程序启动时”。

于 2012-09-14T21:19:15.467 回答