Gestion des tiers (objet)
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