2017-06-12 6 views
0

symfonyプロジェクトにUser Entityクラスがあります。ユーザークラスには、ユーザー名、パスワード、電子メールなどの認証に必要な基本情報が含まれていますが、追加データを追加する予定です。体重、身長、好きな食べ物などデータベースのエンティティクラスを拡張するのは良い方法ですか?

ユーザークラスのすべてのユーザーの生体とデータを定義することをお勧めしますか?または、ユーザークラスを、たとえばメンバーのような別のエンティティクラスで拡張し、次にメンバがプレミアムメンバーまたは管理者クラスを実装する必要がありますか?

エンティティクラスにもビジネスロジックを持つメソッドが含まれている必要がありますか?事前

答えて

1

にあなたがpolymorphismの様々なタイプを記述している

感謝。いくつかのプロパティを共有する複数の類似エンティティを作成する予定がある場合、これは非常に賢明なアプローチです。

Doctrine(Symfonyアプリケーションでは "標準")とは別に、まったく別の解決策が存在しない(間違いない)限り、ビジネスロジックをエンティティに含めることは間違いありません。これは、Eloquent(Laravel)やRuby on RailsなどのORMを使用したActiveRecordパターンとは対照的に、DoctrineでDataMapperパターンを使用しているためです。

この記事では、ActiveRecordとDataMapperの違いの概要を説明します。特にDoctrineとRuby on Railsを対照的なアプローチとして参照してください:https://pressupinc.com/blog/2014/11/orm-patterns-active-record-data-mapper/

関連する問題