J'essaie de déterminer s'il est possible de créer une clé étrangère de cette manière.Question de clé étrangère composite
Il existe d'abord deux tables parent dans ce scénario.
Le Tableau 1 a un PK int et une autre colonne int. Une fois combinés, les deux sont uniques.
Le tableau 2 a un PK int et une autre colonne int. Une fois combinés, les deux sont uniques.
La valeur appariée entre les deux entrées est la façon dont nous sélectionnons actuellement les enregistrements enfants pour l'une ou l'autre table.
Le tableau 3 a une valeur pour la colonne PK et autre int de l'une des deux premières tables. Il est sélectionnable de manière fiable parce que les deux champs utilisés dans une recherche sont uniques à l'un des tableaux ci-dessus. Je cherche donc à créer un FK ou éventuellement deux FK pour ce scénario. J'aimerais pouvoir faire des suppressions en cascade de l'une ou l'autre des premières tables dans la troisième table, et j'aimerais également l'utiliser pour les relations d'entité dans Entity Framework.
S'il vous plaît laissez-moi savoir si cela n'a pas de sens. Je l'ai lu plusieurs fois, et c'est aussi clair que possible.
Merci
Oui, le problème avec ceci est que un et deux sont les parents. Ils ont tous les deux des enregistrements liés dans 3, ce qui serait un FK, pas un PK pour cette table. Il semble être pratiquement impossible d'utiliser une contrainte FK. Merci pour la réponse! – Chrisb
IMO - votre modèle de données est alors brisé. Table1 et Table2 ne sont pas liés, mais vous essayez de les placer dans la même colonne que dans Table3. Si Table1 et Table2 sont liées d'une manière ou d'une autre, Table4 doit être la table parente. –
Je suis complètement d'accord, mais je n'ai aucun contrôle sur cela. Merci pour les commentaires, ils vérifient ce que je pensais complètement. – Chrisb