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é.

Nom : Capture d’écran 2022-04-28 à 11.51.52.png
Affichages : 1360
Taille : 24,2 Ko

- 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