Bonjour,
J'ai une table COUNTRY qui contient une clé primaire 'Id' [int] un champ 'TranslationdId' [int].
J'ai une deuxième table TRANSLATION dont la clé primaire est composé de 2 champs : 'Id' [int] et 'Lang' [char(5)].
Je voudrait qu'il ne soit pas possible d'insérer un enregistrement dans COUNTRY si la valeur du champ 'TranslationId' n'existe pas dans au moins un champ 'Id' de la table TRANSLATION.
Il ne s'agit donc pas d'un clé étrangère car le champ 'Id' de la table TRANSLATION n'est pas unique (c'est le couple 'Id'/'Lang' qui est unique). J'ai donc essayé avec un contrainte CHECK mais ça ne fonctionne pas :
...
[TranslationId] [int] NOT NULL CHECK (TranslationId IN(SELECT DISTINCT [Id] FROM [Translation])),
...
Savez-vous comment je peux gérer ce soucis? Et si c'est possible, avez-vous des idées sur les impacts en performance?
Merci d'avance
Partager