SQL Server – Noob Relationships Question

J'ai deux tables:

CREATE TABLE InmarsatZenith.dbo.ClientJob (JobRef int PRIMARY KEY NOT NULL, IntRef uniqueidentifier, CopyDeadline datetime, PublicationDate datetime, Repeat bit, BusinessType nvarchar(25), Sector nvarchar(30), Lang nvarchar(15), Format nvarchar(25), CreativeRotation nvarchar(50), TipinType nvarchar(25)) 

et

 CREATE TABLE InmarsatZenith.dbo.Comment (ID int identity PRIMARY KEY NOT NULL, IntRef uniqueidentifier, CreatedDate datetime, ModifiedDate datetime, CreatedBy nvarchar(25), ModifiedBy nvarchar(25), Comment text) 

Je veux être capable de créer plusieurs "commentaires" qui relient tous à la table ClientJob basée sur le champ "IntRef". Donc, à chaque fois qu'un commentaire est fait, l'INTREF de ClientJob est spécifié, puis lorsque je retire tous les détails de la table ClientJob, tous les commentaires le sont. J'ai essayé de mettre en place une relation entre les deux tables, cependant SQL Server déclare que la key primaire n'est pas le champ IntRef dans la table ClientJob et donc je ne peux pas lier la table de commentaires à elle. Est-il possible que je puisse avoir plusieurs keys primaires dans la table ClientJob ?! Ou une autre façon plus efficace de le faire tout à fait. La relation est "1 ClientJob a BEAUCOUP de commentaires".

Aide grandement appréciée,

Sincères amitiés.

    Vous ne pouvez avoir qu'une seule key primaire sur une table. Mais vous pouvez également faire une relation de key étrangère avec un index unique.

    En supposant que votre reference est "Un ClientJob peut avoir plusieurs commentaires, mais chaque commentaire n'appartient jamais à un seul ClientJob", alors ces deux étapes vont créer les bits nécessaires pour vous:

    1) Mettez un index unique sur "IntRef" dans votre table "ClientJob":

     CREATE UNIQUE INDEX UIX_IntRef ON dbo.ClientJob(IntRef) 

    2) Mettre une relation de key étrangère de Commentaires à ClientJob:

     ALTER TABLE dbo.Comments ADD CONSTRAINT FK_Comment_ClientJob FOREIGN KEY (IntRef) REFERENCES dbo.ClientJob(IntRef) 

    Ça devrait le faire!

    Marc

    Pour la key étrangère, vous avez besoin de la key Primay ou de l'index unique. Mettre un index unique à IntRef dans la table InmarsatZenith.dbo.ClientJob