Problème de conception BD (XOR)

Résolu
tamashino Messages postés 132 Date d'inscription   Statut Membre Dernière intervention   -  
tamashino Messages postés 132 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai un petit problème :
J'aimerais enregistrer en BD les différents mails envoyés aux clients.
Ce mail devra être lié soit à une personne, soit à une notification, soit à plein de choses autres

Je n ai pas envie d'avoir dans ma BD les champ notif_id, person_id, truc_id etc etc

J ai donc pensé à faire un champ provider (un string égal à "notification" ou à "personne" ou à "truc")
Puis un champ provider_id qui pointe soit sur la table "notif", soit sur "person" soit sur "truc"

Mais askip, c'est pas ouf
Donc comment faire ?



Merci

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, qu'est-ce qui t’empêche de faire comme tu as envie?
1
tamashino Messages postés 132 Date d'inscription   Statut Membre Dernière intervention   25
 
J'aurais aimé avoir quelque chose de plus conventionnelle/scolaire
Je suppose qu'une methode est déjà prévu face à ce genre de probleme, mais je ne la connais pas
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
pourquoi n'as-tu pas envie d'avoir dans ta BD les champ notif_id, person_id, truc_id etc etc ?
une alternative serait d'avoir des tables supplémentaires qui enregistrent les liens.

je suppose qu'il s'agit d'une base de données relationnelle, est-ce exact?
0
tamashino Messages postés 132 Date d'inscription   Statut Membre Dernière intervention   25 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Je me suis mal exprimer :
"Je n'ai pas envie d'avoir dans ma Table** les champs notif_id, person_id, truc_id etc etc"

=> Parce qu'à terme, la table deviendrait beaucoup trop grande

Oui, j ai pensé à faire plusieurs tables qui enregistrerais les liens
Mais du coup, quelle est la meilleur méthode ?

D'un coté, un champ provider et provider_id : Pas vraiment conventionnelle
Peut même etre source de grosses erreurs (puisque ce n'est pas un vrai lien... une clé etrangère ne devrait pas pointer sur plusieurs tables...)

D'un autre coté, une table par lien :
Mais... ca implique la creation de beaucoup de tables... juste pour lier des mail à d'autre champs...

J'esperais qu'il existe une autre solution
Tant pis
Merci beaucoup d'avoir pris le temps de me répondre
0