EF 4 ne prend pas en charge les associations qui ne sont pas basées sur des clés étrangères/primaires. Il y a beaucoup d'occasions où vous devez naviguer entre les tables en utilisant des champs non-clés.Entity Framework 4 - Associations
Par exemple, une table de médicaments a:
medID (PK)
medGrouperID
medName
une table d'ingrédients a:
ingredientID (PK)
ingredientName
et une table de lien a:
medGrouperIDID (PK)
ingredientID (PK)
Dans ce cas EF n » t permettez-moi de créer une association entre les médicaments et la table des liens, car aucun n'a de clé étrangère pour l'autre.
Je n'ai pas fait de conception de base de données depuis longtemps donc j'ai du mal à comprendre cette restriction; S'agit-il d'une bonne conception de base de données ou d'un échec de EF?
EDIT
Le MedGrouperID permet à tous les médicaments avec les mêmes ingrédients, utilise, instructions, etc. pour être regroupés. Cela supprime la duplication des données qui existeraient si chaque médicament avait son propre ensemble d'enregistrements pour les ingrédients, les utilisations, etc.
L'ajout d'une nouvelle table MedGrouper fonctionnerait mais cela nécessiterait une jointure supplémentaire qui ne peut pas être bonne pour la performance .
médicaments
* MedID (PK)
* MedGrouperID (FK)
* MedName
MedGrouper * MEDID (FK) * MedGrouperID (PK)
ingrédients
* IngredientID (PK)
* IngrediantName
MedicationIngredients (jonction/table de jointure)
* MedGrouperID (PK, FK)
* IngredientID (PK, FK)
/EDIT
Pourquoi votre table de liens n'a-t-elle pas de relation FK avec les deux tables qu'elle est censée associer? Pourquoi voudriez-vous qu'un dossier de relation existe lorsqu'il n'y a pas de médicament ou d'ingrédient présent? –
Ma compréhension est qu'un FK doit inclure tous les champs de la PK. Ainsi, les tables de med et d'ingrédient ne peuvent pas avoir de FK avec la table Link, car elles n'ont que des clés qui se chevauchent partiellement. – Alistair77
Vous avez raison, vous ne voudriez pas que des rapports de parenté existent quand il n'y a aucun médicament ou ingrédient présent. Je suis bloqué sur cette question fondamentale: "Est-il normal et/ou approprié dans la conception ER de se joindre à des champs non PK/FK?" – Alistair77