2016-11-07 10 views
0

多くの場合、Webアプリケーションにはデータベースがあります。このデータベースにテーブル "user"があるとします。私がよく見ていることは、開発者がORMクラスを作成してデータベースからデータを取り出すことです。たとえば、 "user"クラスはデータベースからのデータの単なるコンテナです。ORMと正しいOOPを実行する

これは私のやり方ではありません。 「ユーザ」は、ユーザの行動のカプセル化である。ユーザーと何かをするすべてのコードは、 "user"クラス内にあります。データはしばしばデータベースに格納されるため、ORMが追加されます。私は常に「ユーザー」/「ユーザーリスト」クラス(ユーザーの集まり)とユーザー(個々のユーザー)の2つのクラスを定義します。テーブルを表す "users"/"userlist"クラスと、個々のレコードを表す "user"(例えば、パスワードのチェックは正しい)。

私は、多くのORM(ActiveRecordのような)システムはテーブルと個々のレコードを区別しないことに気付きました。クラス「ユーザー」は1つだけです。

次のように私の質問は次のとおりです。

  • は、(上記の例では、ユーザー/ユーザーなど)のテーブルとレコードの間に区別を任意のORMシステム

  • どのようにORMを使うのですがありますデータベースからのデータまたは実際のoopのためにのみアクセスします。

  • ORMはテーブルとレコード間の区別をしていない場合

    は、どこに複数のレコード

    あなたはOOPとORMを結合するための良い方法は何だと思います
  • を処理するコードを配置していますか?

+0

コードを共有してもよろしいですか? –

+0

特定のコードに問題がない限り、これはソフトウェアエンジニアリングサイトに属します –

答えて

0

ORMクラスは単一のレコードを表し、これらのレコードの全体がテーブルを表します。私はテーブルを表すクラスが必要ではないと思います。個々のレコードに対して編集中のものは、複数のオブジェクトに対する操作を処理するサービス(UserServiceなど)です。

+0

サービスとはどういう意味ですか? – djxyz

+0

サービスは、単一のトピックに関する操作を提供するクラスです。たとえば、UserServiceは、登録、ログイン、すべてのユーザーの一覧表示、およびユーザーが行ったその他の処理を処理します。このサービスは、しばしばプログラム全体で共有されるクラスの単一インスタンスです。多くの場合、注入は、サービスを使用するクラス(Controller)にサービスを渡すために使用されます。 – Erik

+0

「ORMクラス」についてもう少し説明していただけますか?あなたは 'ポコ'を意味しますか?また、「それらの記録の全体」とは何ですか? 'List 'のような 'POCO'の数え切れないほどのコレクションを意味しますか? –

関連する問題