Clé étrangère de la relation avec les clés primaires composites dans SQL Server 2005
J'ai deux tables
Table1(
FileID,
BundledFileID,
Domain)
et
Table2(
FileID,
FileType,
FileName)
Dans Table2 FileID
et FileType
sont la clé primaire composite. Je veux créer une relation de clé étrangère de Table1.FileID
à Table2
.
Est-il possible de faire cela?
Vous devez vous connecter pour publier un commentaire.
Depuis Table2 a une clé primaire composite
(FileID, FileType)
, toute référence à elle doit également inclure les deux colonnes.Sauf si vous avez une contrainte unique/indice sur la
Table2.FileID
champ (mais si oui: pourquoi n'est-ce pas le PK??), vous ne pouvez pas créer un FK relation à une partie seulement du PK sur la table cible - ne peut tout simplement pas le faire.FileType
colonne à laTable1
afin qu'il puisse créer le FK relation.Table1
. SiFileID
est vraiment unID
(unique, probablementIDENTITY(1,1)
), alors il n'ya généralement pas besoin d'ajouter une deuxième colonne à votre clé primaire...marc a déjà donné une très bonne réponse. Si les lignes dans le tableau 1 ne jamais se rapporter à un seul type de Fichier (par exemple un fichier de Type "ABC"), alors vous pouvez ajouter un Type de fichier à Table1 comme une colonne calculée:
Que vous pouvez ensuite utiliser dans la Clé Étrangère.