テーブル結合時のドメイン
Userテーブルがあるとします。
このUserテーブルはnameとcreatedAtのプロパティを持つとします。
また、Addressも存在し、こちらではユーザの住所を管理します。
ユーザ情報は基本的に名前だけあれば良いですが、一部で住所つきのユーザ情報を表示する必要があるので、UserテーブルとAddressテーブルを結合する必要があります。また、ユーザ一覧の表示もあるものとします。
この際の、ドメインとエンティティはどのように作るか、ですが、以下の考え方は正しいでしょうか。
- Userエンティティをつくる
- Addressエンティティをつくる
- Userドメインという、Userエンティティ型のプロパティをもつ構造体をつくる
- Usersドメインという、Userエンティティの配列型のプロパティをもつ構造体をつくる
- UserWithAddressという、Userエンティティ型とAddressエンティティ型のプロパティをもつ構造体をつくる
- Addressは単体で扱われることはないので、Addressドメインはつくらない
そして、テーブルの結合がある際は、Userエンティティのファクトリメソッドで、Addressと結合されたデータを取得する、この際の戻り値の型はUserWithAddress型である。
というのが私の現在の理解です。
ただ、テーブルが、3つ結合しないといけない、といった際は、命名を考えないと、大変なことになりそうです。
まだわかっていない部分も多いので、アドバイスをいただきたく思います。
よろしくお願いします。