あなたのデザインでは、「アパート」を1人のユーザーにのみ関連付けることができるようです。
各テーブルの主キーは、という名前の単一の整数列にすることをお勧めしますid
。そして、その主キーへの外部キー参照には、という名前が付けられtablename_id
ます。
関係のカーディナリティを確認する必要があります。「ユーザー」を複数の「アパート」に関連付けることはできますか?「アパート」を複数の「ユーザー」に関連付けることはできますか?「画像」を複数の「アパート」に関連付けることはできますか?等
「多対多」の関係が見つかった場合、通常は関係テーブルを使用してそれを解決します。
「アパート」が複数の「ユーザー」に関連している可能性がある場合、与えられた...
apartment (id PK, ... )
user (id PK, ... )
一意の外部キーの組み合わせを使用して、3番目のテーブルを追加します
user_apartment ( user_id FK, apartment_id FK, UNIQUE KEY (user_id, apartment_id) )
あなたは「イメージ」の概念とは異なる「ギャラリー」の概念を持っているようです。(「一意に識別」でき、情報を保存したいインスタンスの観点から考えてください。)
画像を複数のギャラリーに含めることはできますか?ギャラリーに複数の画像を含めることはできますか?ギャラリーを複数のアパートに関連付けることはできますか?
画像が正確に1つのギャラリーに属し、ギャラリーが正確に1つのアパートに関連している場合、次のように実装します...
gallery (id PK, apartment_id FK, ... )
image (id PK, gallery_id FK, ...)