2012-07-10 10 views
-1

Je crée la base de données pour un site de gestion de petits appartements.Base de données relationnelle de structure de base de données

Fondamentalement, il y aura un formulaire de connexion pour les utilisateurs, où ils seront en mesure d'insérer leur appartement, avec une description, des photos. Et comme je vais travailler avec des tables relationnelles, je veux être sûr que je crée la base de données correctement. Quelqu'un peut-il jeter un coup d'oeil et donner son opinion?

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

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

GALLERY_IMAGES: 
    - id_gallery; 
    - id_apartment; 
    - image; 
+1

Quel est le champ de la galerie dans des appartements? Vous n'avez pas besoin d'un champ clé là parce que vous l'avez dans la table gallery_images. – chiborg

+0

@chiborg Peut-être 'gallery' dans' apartments' est un 'booléen'. Cependant, je ne pense pas que ce soit nécessaire. –

+1

un appartement a-t-il eu 2 propriétaires ou plus? – jcho360

Répondre

0

Si tel est votre scénario: (je devine)

un appartement appartient à un utilisateur un appartement a 0 ou plus d'images

Alors pourquoi avez-vous introduit le concept d'un Galerie?

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

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

IMAGES: 
- id_image 
- id_apartment; 
- image_path; 

Si tel est le cas, alors TBH la Galerie est en images de fait de l'appartement, je veux dire que l'appeler sur votre interface graphique ...

Do certains utilisateurs ont plus d'un appartement?

1

On dirait que votre conception ne va permettre à un "appartement" d'être lié à un seul utilisateur.

Je suggère que la clé primaire de chaque table soit une seule colonne entière nommée id. Et toute référence de clé étrangère à cette clé primaire serait nommée tablename_id.

Vous devez vérifier la cardinalité des relations. Un «utilisateur» peut-il être associé à plus d'un «appartement»? Un «appartement» peut-il être associé à plus d'un «utilisateur»? Une «image» peut-elle être associée à plus d'un «appartement»? etc.

Lorsque nous trouvons une relation «plusieurs-à-plusieurs», nous résolvons normalement cela avec une table de relations.

Si un « appartement » peut être lié à plus d'un « utilisateur », donné ...

apartment (id PK, ...) 

user (id PK, ...) 

Nous ajouterons une troisième table, avec la combinaison de clés étrangères uniques

user_apartment (user_id FK, apartment_id FK, UNIQUE KEY (user_id, apartment_id)) 

Vous semblez avoir un concept de «galerie» qui est distinct de votre concept d '«image». (Pensez en termes d'instances qui peuvent être "identifiées de manière unique" et que vous voulez stocker des informations sur.)

Une image peut-elle être présente dans plusieurs galeries? Une galerie peut-elle avoir plusieurs images? Une galerie peut-elle être associée à plus d'un appartement?

Si une image appartient à exactement une galerie, et une galerie est liée à un seul appartement, alors je ... que la mise en œuvre

gallery (id PK, apartment_id FK, ...) 
image (id PK, gallery_id FK, ...) 
+0

usingid comme nom pour le champ id est un antipattern SQl. – HLGEM

+0

@HLGEM: l'utilisation d'une colonne appelée 'id' comme clé primaire pour chaque table est une approche réalisable, qui présente des avantages significatifs. Il y a aussi des difficultés. Ces difficultés ne disparaissent pas simplement en utilisant un nom autre que «id» pour votre colonne de clé primaire. – spencer7593

Questions connexes