IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Gestion des tiers (objet)


Sujet :

MS SQL Server

  1. #1
    CUCARACHA
    Invité(e)
    Par défaut 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

  2. #2
    CUCARACHA
    Invité(e)
    Par défaut Bingo !
    Salut,

    Bon j'ai finalement trouvé...

    En fait j'ai remplacé la clef primaire de la table d'encapsulation par un Is Row Guid sur le champ qui pointe sur la table parente et j'ai retiré la contrainte de clef étrangère sur les relations et j'ai enlever l'option vérifier la présence de la valeur dans la table fille.

    Voici la procédure stockée qui fonctionne correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    ALTER PROCEDURE TIERS_Patient_Ajout
    	(
    	-- identification patient
    	@strFK_TIERS_BT_Genres nvarchar(128),
    	@txtNom nvarchar(50),
    	@txtPrenom nvarchar(50),
    	@txtPin nchar(10),
    	@uniTiers uniqueidentifier=null OUTPUT 
    	)
    AS
    	SET NOCOUNT ON
    	SET @uniTiers = newid()
    	DECLARE @FK_TIERS_BT_Genres uniqueidentifier
    	SET @FK_TIERS_BT_Genres = convert(uniqueidentifier, @strFK_TIERS_BT_Genres)
     
    	-- Creation du tiers
     
    	INSERT INTO TIERS_MT_Tiers (TIERS_MT_Tiers,dteCreation) 
    	VALUES (@uniTiers,getdate())
    	-- Creation de la personne physique
    	INSERT INTO TIERS_ST_PP (TIERS_ST_PP) 
    	VALUES (@uniTiers)
    	-- Creation du patient
    	INSERT INTO TIERS_ST_Patients (TIERS_ST_Patients) 
    	VALUES (@uniTiers)
    	-- Creation de l'identification patient
    	INSERT INTO TIERS_PP_Identification (TIERS_PP_Identification,FK_TIERS_BT_Genres,txtNom,txtPrenom,txtPin) 
    	VALUES (@uniTiers,@FK_TIERS_BT_Genres,@txtNom,@txtPrenom,@txtPin)
    	RETURN
    Puisse cette astuce vous être utile...

    ++

    Laurent

Discussions similaires

  1. Pb de gestion des objets Excel
    Par tedparker dans le forum Access
    Réponses: 2
    Dernier message: 11/09/2006, 17h13
  2. Gestion des event avec un objet ole MsExcel
    Par rdemont dans le forum Delphi
    Réponses: 3
    Dernier message: 03/07/2006, 16h08
  3. [PHPTAL] gestion des méthodes des Objets
    Par ronio dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/03/2006, 14h29
  4. gestion des utilisateurs dans une solution 3-tiers
    Par nadia lydia dans le forum Oracle
    Réponses: 3
    Dernier message: 26/10/2005, 12h58
  5. Gestion des versions d'objets dans les SGBD
    Par bennus dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/05/2005, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo