Bonjour,
J'ai une petite question concernant les associations plusieurs-à-plusieurs.
Lorsque l'on souhaite avoir une contrainte d'unicité entre deux clés étrangères d'une association plusieurs-à-plusieurs, faut-il privilégier une clé primaire multicolonne ou une contrainte d'unicité multicolonne ?
Par exemple, dans le cas de garnitures de pizzas :
[PIZZA] 1,n --- (posséder) --- 1,n [GARNITURE]
Je cherche à forcer l'unicité de l'association entre une garniture et une pizza. Une pizza ne peut pas avoir 2 éléments de garniture identiques (par exemple, 2 fois des anchois).
je pourrai faire ceci (pour Postgresql) :
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE garniture_pizza( pizza_id BIGINT NOT NULL, garniture_id BIGINT NOT NULL CONSTRAINT pizza_garniture PRIMARY KEY (pizza_id, garniture_id) );
Dans ce dernier cas, il n'y a pas de clé primaire. Je peux ajouter des index sur chaque colonne, si nécessaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE garniture_pizza( pizza_id BIGINT NOT NULL, garniture_id BIGINT NOT NULL, UNIQUE (pizza_id, garniture_id) );
Est-ce que ma réflexion est censée et quelle est la solution à privilégier ?
Vincent
Partager