Salut,
Je travaille sur une base de données assez complexe dans laquelle il existe de très nombreuses relations entre les tiers.
J'aimerais structurer la base comme suit :
Tiers (tous les tiers, physiques ou moraux)
clef Guid(UniqueIdentifier) default newid()
Tiers_PP
clef Guid(UniqueIdentifier) en liaison 1-1 avec Tiers
Tiers_PM
clef Guid(UniqueIdentifier) en liaison 1-1 avec Tiers
Tiers_Médecin
clef Guid(UniqueIdentifier) en liaison 1-1 avec Tiers_PP
Tiers_Patient
clef Guid(UniqueIdentifier) en liaison 1-1 avec Tiers_PP
Tiers_Hopital
clef Guid(UniqueIdentifier) en liaison 1-1 avec Tiers_PM
Cette astuce est destinée à me permettre lorsque c'est nécessaire de pouvoir considérer l'ensemble des tiers qu'ils soient physiques ou moraux sans avoir à utiliser de requête union qui plombe les perf à mort.
Si je mets en relation
Tiers avec Tiers_PP et Tiers_PM, que je crée un nouveau tiers et que je mets son id dans PP par exemple, l'intégrité référentielle attend la même valeur dans PM or je ne veux pas.
Question : existe-t-il une astuce pour qu'une relation 1-1 entre deux tables soit possible sans utiliser une clef étrangère mais bien en utilisant deux clefs primaires dont l'une est newid() et l'autre prend la même valeur ?
D'avance merci pour votre aide,
Laurent
Partager