Relation un-à-plusieurs dans MySQL - comment construire un modèle?
J'ai deux tables:
1) Zone
2) la Carte
Chaque Région doit disposer d'au moins 1 Carte, mais peut aussi avoir plus d'une Carte.
Une Carte ne peut appartenir qu'à un seul Domaine.
Comment construire dans MySQL?
source d'informationauteur tellob
Vous devez vous connecter pour publier un commentaire.
Ajouter une clé Étrangère dans la Carte qui fait référence à la Zone de la Clé Primaire. Que va appliquer un un-à-plusieurs relation entre les Cartes et les Zones.
Que pour faire respecter un minimum d'une carte par zone (si nécessaire) il y a quelques idées dans ce post ici. L'un des plus simple des solutions serait de créer une vue qui affiche uniquement les zones qui ont des cartes:
De cette façon, vous pouvez créer une zone, puis ajouter des cartes. Vous pouvez également appliquer la Clé Étrangère dans les cartes pour ne PAS être NULL, donc, une carte doit toujours avoir une zone.
SqlFiddle
Chaque
Map
DOIT avoir unArea
commearea_id
n'est pas nul (et c'est unForeign key
surArea
)Mais vous ne serez pas en mesure (et ce n'est pas souhaitée) à "au moins une carte" pour chaque zone.
Un jour, vous devrez créer un
Area
. Et il ne dispose d'aucuneMap
en ce moment.Ou de faire des "réguliers" vérifie les Domaines sans aucune Carte.
Vous souhaiterez peut-être supprimer un
Area
si elle n'a pas plus liéesMap
lorsque vous supprimez unMap
.Une table pour chaque Carte et de la Région, avec une clé étrangère sur la Carte de liaison de Zone.