Bonjour,
Je travaille sur un logiciel de gestion de notes de frais et je rencontre un problème sur la conception/amélioration de ma base.
Pour résumer, une note de frais possède plusieurs frais et chaque frais peut avoir une liste d'invités. Concrètement, le frais pourrait concerner un repas au restaurant ou vous avez invité un client par exemple. Ces informations doivent être renseignées dans ma base.
C'est sur la conception de la table contenant les informations des invités que je rencontre un problème.
Un invité peut être, soit une personne déjà référencée dans mon logiciel (un collaborateur par exemple, donc dans ma table des personnes), soit une personne non référencée (j'ai alors uniquement besoin de son nom/prénom), soit un professionnel de santé (la loi oblige à enregistrer ce genre d'information pour les éventuel conflit d’intérêts) qui est déjà référencé dans mon application (donc dans une table dédié) ou enfin, l'invité peut être un professionnel de santé qui n'a pas encore été référencé (ils sont enregistrés dans une table distincte pour répondre à d'autres besoins).
La table telle qu'elle est actuellement :
ID_INVITE INT IDENTITY (la PK de ma table)
ID_FRAIS INT (FK afin de la relier l'invité au frais correspondant)
ID_PERSONE INT (FK remplie dans le cas ou l'invité est une personne référencé dans mon application)
NOM VARCHAR(30)
PRENOM VARCHAR(30) (infos de l'invité si celui ci n'est pas référencé dans mon application)
ID_PROF_SANTE INT (FK remplie dans le cas ou l'invité est un professionnel de santé référencé dans mon application)
ID_PROF_SANTE_NON_REF (FK remplie dans le cas ou l'invité est un professionnel de santé non référencé dans mon application)
Je ne pense pas que cette solution soit optimale car je me retrouve avec des valeurs NULL dans toute la table et cela complexifie énormément mes traitements. Pourtant, je n'ai aucune idée de comment l’améliorer.
Pensez vous qu'il soit possible d’améliorer la conception de cette table ? Si vous avez des suggestions, je suis preneur !
Merci
Partager