Userテーブルがあるとします。
このUserテーブルはnameとcreatedAtのプロパティを持つとします。
また、Addressも存在し、こちらではユーザの住所を管理します。

ユーザ情報は基本的に名前だけあれば良いですが、一部で住所つきのユーザ情報を表示する必要があるので、UserテーブルとAddressテーブルを結合する必要があります。また、ユーザ一覧の表示もあるものとします。

この際の、ドメインとエンティティはどのように作るか、ですが、以下の考え方は正しいでしょうか。

  • Userエンティティをつくる
  • Addressエンティティをつくる
  • Userドメインという、Userエンティティ型のプロパティをもつ構造体をつくる
  • Usersドメインという、Userエンティティの配列型のプロパティをもつ構造体をつくる
  • UserWithAddressという、Userエンティティ型とAddressエンティティ型のプロパティをもつ構造体をつくる
  • Addressは単体で扱われることはないので、Addressドメインはつくらない

そして、テーブルの結合がある際は、Userエンティティのファクトリメソッドで、Addressと結合されたデータを取得する、この際の戻り値の型はUserWithAddress型である。

というのが私の現在の理解です。

ただ、テーブルが、3つ結合しないといけない、といった際は、命名を考えないと、大変なことになりそうです。

まだわかっていない部分も多いので、アドバイスをいただきたく思います。
よろしくお願いします。