Héritage ? Base ou Class ou les 2 ?

Djzlouk Messages postés 70 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 20 janvier 2011 - 31 août 2010 à 17:50
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 31 août 2010 à 18:57
Bonjour,

J'ai une petite question d'architecture, vous allez sans doute pouvoir m'éclairer...
Je souhaite avoir dans une application web une base Client, une Fournisseur, une Utilisateur... Bref que des personnes. Or une 'personne' a des caractéristiques commune. elle ont toute une adresse par exemple.

Alors, faut il en base de données faire quelque chose du genre :
table : Client [IdClient, Nom, Prenom, AdresseRue, AdresseCP, AdresseVille]
table : Fournisseur [IdFournisseur, Nom, Prenom, AdresseRue, AdresseCP, AdresseVille]
table : Utilisateur [IdUtilisateur, Nom, Prenom, AdresseRue, AdresseCP, AdresseVille]

Ou :
table : Client [IdClient, Nom, Prenom, IdAdresse]
table : Fournisseur [IdFournisseur, Nom, Prenom, IdAdresse]
table : Utilisateur [IdUtilisateur, Nom, Prenom,IdAdresse]
table : Adresse : [IdAdresse, AdresseRue, AdresseCP, AdresseVille]


Et apres, en code C# comment traiter le tout ? Les mises à jour... les inserts... ?

Je travail avec Entity data Framework, du coup, pour moi une table = Un objet apres qui va en référencer d'autre... etc etc... Du coup, je préfére la 2eme solution avec une Table [Adresse]... Mais ce qui ne me va pas trop c'est qu'il va y avoir par client une adresse par fournisseur une adresse et par utilisateur une adresse. Ce que je trouve pas très propre.

Biensur, je ne peux pas faire une table [User] ou je référencerais si c'est un Client, Fournisseur ou Utilisateur car j'ai beaucoup d'autre données autour de ces tables, et il me faut donc des tables bien séparé.


Bref, j'aimerais savoir si il y a des 'best practices' à ce sujet... ou si ca vous inspire de me donner une idée de réflexion...

Merci :)

1 réponse

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
31 août 2010 à 18:57
Salut,

C'est une bonne question.
Toutes les méthodes on des avantages et des inconvenients.

Une methode qui est utilisée dans les exemples microsoft de mémoire est
la solution 1 avec un complexe type pour l'adresse.
ce qui permet de mettre des controles commun pour les n tables.

Le schema de base de données n'est pas obligatoirement
celui de la base
Exemple
Le TPH ou TPT

Entity framework faisant les correspondance si tu maitrises bien le truc.
Il y a des exemples sur les sites techdays france pour comprendre les principes
0
Rejoignez-nous