1

ユーザーのトランザクション中に (PGSQLKit を使用して) Postgres データベースを複数回呼び出す Cocoa ベースのアプリケーションを開発しています。アプリケーションは一種のキオスクです。

私が知りたいのは、アプリケーション全体でデータベース呼び出しを行う適切な方法です。MVC の精神では、データベースから返されるデータのオブジェクトを作成し (これを行う予定です)、それらのオブジェクトを操作する必要があることを知っています。明確にする必要があるのは、データベース呼び出しを配置する場所です。

基本的には、私が持っているこれらの質問に
行き着きます: -データベースとやり取りするには、データベース呼び出しを行う別のデータベース コントローラー クラスを作成する必要がありますか? ビューコントローラーから直接データベース呼び出しを行うのは適切ではないと思います。
-データベースコントローラーを作成すると仮定すると、ビューコントローラーはデータベースコントローラークラスをトリガーし、そのようにDB呼び出しを行う必要がありますか?
- アプリケーションがロードされたら、データベース コントローラーを介してデータベースに接続し、ユーザーのトランザクションが完了したら閉じる必要がありますか? トランザクション全体でいくつかの呼び出しを行うため、毎回接続を閉じる必要はないと思います。

4

1 に答える 1

1

-In order to interact with the database, should I create a separate database controller class that would make database calls? I feel making database calls directly from a view controller would not be appropriate.

Correct. In some cases you may even have another layer of model objects on top of the database controller. Most of the app shouldn't care that the data is stored in a Postgres database rather than some other way.

-Assuming I create a database controller, should my view controllers trigger the database controller class and make DB calls that way?

Generally yes. Your view controllers will observe the model and tell the model when they need data. The model will let observers (including view controllers, though the model doesn't care who they are) know when relevant data becomes available or changes.

-When the application loads, should I make a connection to the datase through the database controller and close it when the user's transaction is complete? I'll be making several calls throughout the transaction so I don't think i should close the connection each time.

That is an internal detail to the database controller. Generally this kind of object would maintain a long-lived connection. Usually that connection is made the first time the model is asked for data that it needs from the database rather than "at application start."

于 2012-09-14T21:19:15.467 に答える