par
zeus » 17 oct. 2007, 16:48
J'aurais 2 solutions à te proposer
1/ Pas de table
adresse et toutes les informations dans la table
client. En effet, pourquoi créer une table
adresse si tu sais que tu auras 1 adresse de facturation et 1 adresse de livraison, et que tu peux donc prévoir le nombre de champs voulu.
2/ Si tu préfères prévoir aucun destinataire (adresse facturation = adresse livraison) ou plusieurs destinataires potentiels (1 par commande), tu peux créer une table
destinataire qui aurait une clé étrangère sur la table
client et la table
commande aurait une clé étrangère non obligatoire sur la table
destinataire
Voilà le MCD de la seconde solution
Du coup, plusieurs cas de figure
- Adresse de livraison = adresse de livraison : Le champ commande.id_destinataire n'est pas renseigné, il faut chercher l'adresse du client
- Adresse de livraison != adresse de livraison : Le champ commande.id_destinataire contient le destinataire de la commande
Avec ce système, tu pourras donc éviter de créer des destinataires quand il n'y a pas lieu et tu pourras attribuer plusieurs destinataires pour un unique client
