-1

小規模マンション管理サイトのデータベースを作成しています。

基本的に、ユーザー用のログインフォームがあり、そこにアパートを挿入し、説明や写真を付けることができます。また、リレーショナル テーブルを扱うので、データベースを正しく作成していることを確認したいと思います。誰かが見て、意見を言うことができますか?

USERS:
  - id_user;
  - username;
  - password;
  - email;

APARTMENTS:
  - id_apartment;
  - id_user;
  - title;
  - description;
  - map;
  - gallery;

GALLERY_IMAGES:
  - id_gallery;
  - id_apartment;
  - image;
4

2 に答える 2

1

あなたのデザインでは、「アパート」を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, ...)
于 2012-07-10T15:20:23.733 に答える
0

これが本当にあなたのシナリオである場合:(私は推測しています)

アパートはユーザーに属していますアパートには0枚以上の画像があります

では、なぜギャラリーのコンセプトを導入したのですか?

USERS:
- id_user;
- username;
- password;
- email;

APARTMENTS:
- id_apartment;
- id_user;
- title;
- description;
- map;

IMAGES:
- id_image
- id_apartment;
- image_path;

この場合、ギャラリーは実際にはアパートの画像です。つまり、GUIでそれを呼び出します...

一部のユーザーは複数のアパートを持っていますか?

于 2012-07-10T15:20:07.977 に答える