2

Je sais cela, mais je pense que ce soit une réponse simple ...Base de données Normalisée Question

Ceci est ma base de données simple à ce jour pour cette question:

alt text

Suis-je censé insérer l'identifiant depuis Contact et Phone dans Contact_Phone lorsque j'insère un enregistrement dans les tables Contact et Phone - ou cela peut-il être fait automatiquement? J'utilise SQL Server 2008 Express.

Répondre

3

Vous devez l'insérer vous-même dans SQL, mais cela dépend entièrement de la façon dont vous accédez à la base de données. Entity Framework devrait être capable de gérer cela automatiquement pour vous.

+0

Jouer avec NHibernate pour la première fois. Je ne sais pas si c'est le cas. –

+0

Cela devrait aider: http://codebetter.com/blogs/peter.van.ooijen/archive/2008/05/29/nhibernate-many-to-many-collections-or-mapping-is-not-one-table -one-class.aspx –

2

Vous devez l'insérer. Et puisque les relations sont définies, vous devrez d'abord l'insérer dans les tables Contact et Téléphone.

1

Comment la base de données peut-elle savoir quels contacts et quels téléphones vont ensemble, sauf si vous les insérez? Malheureusement, dans SQL Server, vous ne pouvez pas mettre à jour plusieurs tables à la fois - une limitation partagée par la plupart sinon tous les SGBD SQL.

+0

Eh bien, je me suis dit que s'il y avait une contrainte de clé étrangère, il connaîtrait la relation plusieurs-à-plusieurs qui est déjà représentée graphiquement –

+0

La base de données n'a aucun moyen de savoir quelle ligne est liée à quelle autre ligne sauf dis le. Il est possible que votre application le sache car l'application utilise un modèle d'objet avec des pointeurs pour associer un élément à un autre. Cependant, il n'y a pas de pointeurs dans la base de données. – sqlvogel

+0

une relation de clé étrangère n'est pas un pointeur? –

Questions connexes