Problème de conception BD (XOR) [Résolu]

Signaler
Messages postés
132
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
22 juin 2020
-
Messages postés
132
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
22 juin 2020
-
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

Messages postés
11511
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juillet 2020
659
bonjour, qu'est-ce qui t’empêche de faire comme tu as envie?
Messages postés
132
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
22 juin 2020
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
Messages postés
11511
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juillet 2020
659
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?
Messages postés
132
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
22 juin 2020
25 >
Messages postés
11511
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 juillet 2020

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