"un à plusieurs" de la relation dans la base de données - conception
Un "un à plusieurs" de la relation entre les deux tables doivent être mis en œuvre avec deux ou trois tables?
Par exemple, si nous avons:
author(id,otherAttributtes)
books(id,authorid,otherAttributes)
ou
author(id,otherAttributtes)
books(id,otherAttributes)
authorConnectsBooks(authorid,booksid)
J'aime plus la première approche, mais j'ai vu le deuxième et dans les demandes plus complexes d'un grand nombre de fois. Est-il un inconvénient pour la première méthode, ou c'est juste personnel qui chemin à suivre?
merci pour les réponses!! (l'exemple est aléatoire je voulais juste montrer un "un à plusieurs" de la relation)
Double Possible de Comment mettre en œuvre un-à-un, un-à-plusieurs et plusieurs-à-plusieurs liens lors de la conception de tables?
Double Possible de Comment mettre en œuvre un-à-un, un-à-plusieurs et plusieurs-à-plusieurs liens lors de la conception de tables?
OriginalL'auteur user666 | 2012-04-13
Vous devez vous connecter pour publier un commentaire.
Le premier exemple montre un "un à plusieurs" de la relation, alors que la seconde affiche un de nombreux de nombreux de la relation.
Exemple permet de dire que nous utilisons le premier exemple
Comment vous déclarez que Jane et Jon a écrit le livre "Stackoverflow pour le plaisir"? Dans cette relation de table vous ne pouvez pas, vous avez exprimé qu'un auteur peut écrire de nombreux livres. Donc, soit Jane a écrit ou Jon a écrit. Si un seul d'entre eux a écrit les livres que vous pourriez utiliser ce type de relation. Toutefois, si vous voulez montrer qui a écrit ce livre, vous avez besoin d'une relation plusieurs-à-plusieurs.
Maintenant, en utilisant cette même analogie de Jane et de Jon, vous pouvez représenter les deux auteurs de ce livre à l'aide de votre deuxième exemple - de nombreuses de nombreuses relations.
Permet d'utiliser Stackoverflow comme un exemple en commençant par un "un à plusieurs" de la relation et se terminant par une relation plusieurs-à-plusieurs:
Pauvre Jeff, il n'est pas crédité de stackoverflow à partir de l'exemple ci-dessus...donc nous avons besoin pour corriger cela:
Maintenant tout le monde est heureux...
OriginalL'auteur JonH
un-à-plusieurs est de deux tables.
le second est plusieurs à plusieurs.
OriginalL'auteur Tony Hopkinson
Un un-à-plusieurs relation doit être mis en œuvre avec 2 tables.
Mais la relation que vous proposez dans votre exemple (entre les Auteurs et les Livres) n'est pas un-à-plusieurs, plusieurs-à-plusieurs.
"Un Auteur peut écrire beaucoup de Livres, et un Livre peut être écrit par un ou plusieurs Auteurs."
Et plusieurs-à-plusieurs relations devraient être mises en œuvre avec 3 tables.
Avoir une bonne journée.
OriginalL'auteur Cesar Daniel
Si la relation est en fait une pour beaucoup, il n'est pas nécessaire pour une table de liaison (
authorConnectsBooks
dans votre exemple). Dans votre exemple, cependant, vous n'avez pas de un-à-plusieurs relations depuis qu'un auteur peut écrire de nombreux livres et un livre peut être écrit par de nombreux auteurs. Dans votre exemple, vous avez une plusieurs-à-plusieurs relations. Si vous avez une plusieurs-à-plusieurs relation, alors vous avez besoin d'une table de liaison (authorConnectsBooks
dans votre exemple).OriginalL'auteur Justin Cave
Comme tout le monde le dit, le premier est un "un à plusieurs" de la relation dans laquelle vous n'avez pas besoin de l'appoint de la table. Juste deux tables de travail. Mais dans le second cas, depuis sa un de nombreux de nombreux les relations, vous aurez besoin d'ajouter une table connue sous le nom de la Jonction ou de la table de renvois, parce que la plupart des systèmes de gestion de base de données ne supporte qu'un-à-plusieurs liens, il est nécessaire de mettre en œuvre de telles relations manuellement par l'intermédiaire d'une troisième table de jonction. La table de jonction de la clé primaire est normalement formé en utilisant les clés primaires des tables qu'il se connecte.
Voici une page de wiki qui explique exactement le même exemple que vous avez demandé:
LIEN
OriginalL'auteur Nemin