こんにちは、以下のケースでエンティティを作成するためのベスト プラクティスは何だろうと思っています。
- 顧客ID
- 顧客名
- customer_family_name
- 顧客作成日
customer_contact (顧客に無制限の連絡先リストを提供するため)
- 顧客ID
- customer_contact_type (つまり、電子メール、電話、bb)
- customer_contact_value
顧客情報
- 顧客ID
- customer_info_type (システムで使用するため、顧客の個人情報に関連しないすべての情報)
- customer_info_value
上記のテーブルでは、テーブルごとにエンティティを作成する必要がありますか? たとえば、customer_info は、他のテーブルに参加しないと意味をなさないことがあります。単独では役に立ちません。
意味のあるエンティティが必要な場合は、以下のように作成します
CustomerEntity
- customer_id int
- customer_name 文字列
- customer_info 配列 -----> これはコレクションになります
- customer_contact --------> こちらもコレクションになります
しかし、これはエンティティを少し複雑にしますか? エンティティ内でコレクションを許可する必要がありますか? または、これは Mapper の仕事ですか、それとも Factory の仕事ですか?
-また-
各テーブルのエンティティを作成し、エンティティを他のエンティティにネストさせますか? それは良い習慣ですか
-また-
各テーブルに対してデカルトを行うので、各行はエンティティですか?