par
Cyrano » 22 août 2011, 22:46
Salut,
ton modèle semble tenir la route.
Première observation, ce n'est pas un MLD mais un MPD (Modèle Physique de Données), mais c'est de la sémantique.
Pour ta table RessourceCatégorie, tu es dans le vrai : il y a une clé primaire composite et deux clés étrangères qui sont les colonnes composant la clé primaire, ce n'est en aucune manière contradictoire et même tout à fait valide. Un détail cependant, tu es limité aux moteurs supportant l'intégrité référentielle pour pouvoir indiquer les actions ONDELETE et ONUPDATE, ce qui se résume au moteur InnoDB pour l'instant avec MySQL.
Ensuite, il me semble qu'il manque une clé étrangère dans ta table Réservation, idRessource, alors qu'on y trouve un idUser ne correspondant à aucune table User... à vérifier.
Enfin, ne disposant pas de tous les éléments pour donner un avis pertinent, je resterai assez vague, mais une double relation entre Reservation et RessourceCategorie via d'un coté Categories et d'un autre Ressource me semble étrange alors que RessourcesCategorie est déjà une table relationnelle... Tu te retrouves avec une relation circulaire ouvrant la porte à des incohérences. J'ai quelques raisons de penser que les catégories concernent les ressources. Donc dans la mesure où tu as déjà un lien entre réservation et ressource, par transitivité, tu obtiens la catégorie, sauf que là, selon ton modèle, ça suppose qu'une ressource peut appartenir à 1:n catégories... Sauf qu'en principe, tu ne réserves pas une catégorie, tu réserves une ressource. Enfin bon, c'est assez subjectif faute d'éléments plus clairs... à voir.
Salut,
ton modèle semble tenir la route.
Première observation, ce n'est pas un MLD mais un MPD (Modèle Physique de Données), mais c'est de la sémantique.
Pour ta table RessourceCatégorie, tu es dans le vrai : il y a une clé primaire composite et deux clés étrangères qui sont les colonnes composant la clé primaire, ce n'est en aucune manière contradictoire et même tout à fait valide. Un détail cependant, tu es limité aux moteurs supportant l'intégrité référentielle pour pouvoir indiquer les actions ONDELETE et ONUPDATE, ce qui se résume au moteur InnoDB pour l'instant avec MySQL.
Ensuite, il me semble qu'il manque une clé étrangère dans ta table Réservation, idRessource, alors qu'on y trouve un idUser ne correspondant à aucune table User... à vérifier.
Enfin, ne disposant pas de tous les éléments pour donner un avis pertinent, je resterai assez vague, mais une double relation entre Reservation et RessourceCategorie via d'un coté Categories et d'un autre Ressource me semble étrange alors que RessourcesCategorie est déjà une table relationnelle... Tu te retrouves avec une relation circulaire ouvrant la porte à des incohérences. J'ai quelques raisons de penser que les catégories concernent les ressources. Donc dans la mesure où tu as déjà un lien entre réservation et ressource, par transitivité, tu obtiens la catégorie, sauf que là, selon ton modèle, ça suppose qu'une ressource peut appartenir à 1:n catégories... Sauf qu'en principe, tu ne réserves pas une catégorie, tu réserves une ressource. Enfin bon, c'est assez subjectif faute d'éléments plus clairs... à voir.