2

私は、純粋なPHPMVC構造に基づくホテル予約システムの最初のフェーズの開発に忙しくしています。CakeやCodeIgniterのようなライブラリに慣れようとしましたが、自分のコントロールがいかに少ないかについては満足できませんでした。

そこで、これまでのところ非常にうまく機能している独自のミニフレームワークを構築することにしました。現在、私が使用しているデータベース構造はかなり複雑です。かなりの数の多対多の関係と1対多の関係があります。後でフラストレーションを避けるためにプログラミングレベルで行う必要があると考えているため、データベース自体に参照整合性を適用しないことを選択しました-物事は常に計画どおりに機能するとは限らず、プログラムで何が起こっているのかを理解する方が簡単です。説明エラーメッセージが少ないSQLデータベース内

つまり、要点は、私が苦労している決定は、さまざまなオブジェクト間の関係に関係する任意のSQLステートメントをどこに配置するかということです。

したがって、たとえば、ユーザーとプロパティの2つのオブジェクトがあります。この関係では、ユーザーは賃貸される部屋を収容する可能性のある物件の所有者です。ユーザーオブジェクトモデル(MVC)には、「挿入」、「削除」、「更新」、「getUser」、「userExists」などのメソッドがあります。同様のメソッドが私のプロパティモデルに存在します。

各モデルは、データベースへの接続を活用するために作成したDatabaseクラスを拡張します。

この構造では、これらのオブジェクト間の関係をどこでどのように管理しますか?関係はProperties_has_Users->多対多です。リレーションシップの挿入、更新、削除のメソッドはどこで作成しますか?「Properties_Users_Relationships」と呼ばれる独自のオブジェクト内にありますか?オブジェクトの1つのコントローラー内にありますか?

私はこれらのフォーラムを初めて利用します。実際、3年間の開発で、フォーラムに投稿したことはありません。フォーラムを読んでください。他に投稿してほしいものがある場合は、お知らせください。 。

ありがとう

4

1 に答える 1

0

うわー、気分を害することはありませんが、あなたは混乱しています。真または偽の MVC はありません。アーキテクチャ パターンであり、データベースとは何の関係もない MVC だけがあります。また、php には適切な mvc フレームワークが十分にあり、十分に制御できます。

とにかく、クエリ、テーブルの関係などを含むすべてのストレージを処理する永続レイヤーが必要です。ビジネスレイヤーには、ホテルの予約プロセスをモデル化するオブジェクトがあります。ビジネス オブジェクトはデータベースを認識しません。実際にクエリを実行してビジネス オブジェクトを復元する DAO またはリポジトリがあるとよいでしょう。

データベースの問題を無視して、ビジネスの概念をモデル化することが重要です。ものを保存/ロードする必要があるときは、データベースを心配してください。

クエリのみの場合、wueris を非表示にしてビューのビュー モデルを直接返す特殊な Dao/リポジトリを使用できます。

理解しておくべき重要なことの 1 つは、永続化モデル (データベースに保存するもの) はビジネス モデル (ビジネスの概念とプロセス) とは異なるということです。1 つは単なるデータであり、もう 1 つは動作です。M はポリモーフィックであり、データベース構造、ビュー データ、またはビジネス動作を意味します。

また、おそらくこの投稿は、MVC の M をよりよく理解するのに役立ちます。

于 2012-11-04T11:02:16.300 に答える