Bonjour à tous,
J'aurais besoin de votre avis du point de vue de la logique des relations et cardinalités entre les entités client et voiture dans le cas de la gestion soit des données courantes (diagramme du haut dans l'image), soit en historisant (diagramme du bas dans l'image).
L'hypothèse est la plus simple : un client peut louer une à plusieurs voitures, une voiture ne peut-être louée qu'à un client à la fois. Un client n'existe que s'il a déjà loué.
- dans le cas d'une gestion non historisée (seule la location en cours serait gérée), la relation serait pour moi 1,n côté client qui peut louer plusieurs voitures et 1,1 côté voiture qui n'est rattachée qu'à un client à la fois :
CLIENT(idClient)
idClient clé primaire
VOITURE(idVoiture, date_location, idClient)
idVoiture : clé primaire
idClient : clé étrangère référence CLIENT(idClient)
- dans le cas d'une historisation, il me semble logique que ce soit 1,n 1,n car une voiture peut être rattachée à plusieurs relations A_LOUE :
CLIENT(idClient)
idClient clé primaire
VOITURE(idVoiture)
idVoiture : clé primaire
A_LOUE(idClient, idVoiture, date_location, date_retour)
idClient : clé primaire, clé étrangère référence CLIENT(idClient)
idVoiture : clé primaire, clé étrangère référence VOITURE(idVoiture)
date_location : clé primaire
Je mets la date de location en PK,FK afin que l'unicité soit garantie pour un client et une date de location. La date de fin de location sera mise à jour à échéance.
Sur le principe auriez-vous fait de cette manière l'historisation ?
Merci,
C. Tob
Partager