Dans la conception d'une base de données, que font n:m y 1:n C'est-à-dire ?
Cela a-t-il un rapport avec les clés ou les relations ?
Dans la conception d'une base de données, que font n:m y 1:n C'est-à-dire ?
Cela a-t-il un rapport avec les clés ou les relations ?
1:n
signifie "un à plusieurs" ; vous avez deux tables, et chaque ligne de la table A peut être référencée par un nombre quelconque de lignes de la table B, mais chaque ligne de la table B ne peut référencer qu'une ligne de la table A (ou aucune).
n:m
(ou n:n
) signifie "many-to-many" ; chaque ligne de la table A peut faire référence à de nombreuses lignes de la table B, et chaque ligne de la table B peut faire référence à de nombreuses lignes de la table A.
A 1:n
est généralement modélisée à l'aide d'une simple clé étrangère : une colonne de la table A fait référence à une colonne similaire de la table B, généralement la clé primaire. Puisque la clé primaire identifie de manière unique une ligne, cette ligne peut être référencée par de nombreuses lignes de la table A, mais chaque ligne de la table A ne peut référencer qu'une seule ligne de la table B.
A n:m
Une solution courante consiste à utiliser une table de liens qui contient deux colonnes de clés étrangères, une pour chaque table qu'elle relie. Pour chaque référence entre la table A et la table B, une ligne est insérée dans la table de liens, contenant les ID des lignes correspondantes.
"Aucune" -> ne s'agirait-il pas d'une relation 0/1:n ? (rare) Ma compréhension de 1:n est qu'il doit y en avoir une. Comme "Une ville doit être dans un pays, mais les pays peuvent avoir n villes", "Une entreprise peut avoir n employés, mais un employé doit travailler pour une seule entreprise", ...
C'est ce qui me rend fou. Link Table, Join table. Mais vous JOIGNEZ des tables. Vous avez aussi des tuple, des row, des attributs. Je veux dire que c'est comme si la conception de la base de données n'avait jamais été spécifiée complètement, et permettait plusieurs mots. De plus, certains mots sont très dépassés et sèment la confusion. Comme Domain Integrity. Pourquoi ce n'est pas attribut Integrity. Ou intégrité de colonne. Le mot domaine est tellement vague, et utilisé dans d'autres domaines. Et tout cela signifie essentiellement la validation des entrées, qui est un terme de la cybersécurité. AHHH
N:m --> si vous ne connaissez pas à la fois n et m, il s'agit simplement de plusieurs à plusieurs et cela est représenté par une table de pont entre deux autres tables, par exemple
-- This table will hold our phone calls.
CREATE TABLE dbo.PhoneCalls
(
ID INT IDENTITY(1, 1) NOT NULL,
CallTime DATETIME NOT NULL DEFAULT GETDATE(),
CallerPhoneNumber CHAR(10) NOT NULL
)
-- This table will hold our "tickets" (or cases).
CREATE TABLE dbo.Tickets
(
ID INT IDENTITY(1, 1) NOT NULL,
CreatedTime DATETIME NOT NULL DEFAULT GETDATE(),
Subject VARCHAR(250) NOT NULL,
Notes VARCHAR(8000) NOT NULL,
Completed BIT NOT NULL DEFAULT 0
)
Il s'agit de la table de pont pour mettre en œuvre le mappage entre deux tables.
CREATE TABLE dbo.PhoneCalls_Tickets
(
PhoneCallID INT NOT NULL,
TicketID INT NOT NULL
)
One to Many (1:n) est simplement une table qui a une colonne comme clé primaire et une autre table qui a cette colonne comme clé étrangère.
Un peu comme un produit et une catégorie de produits, où une catégorie de produits peut contenir plusieurs produits.
Dans une base de données relationnelle, tous les types de relations sont représentés de la même manière : en tant que relations. La ou les clés candidates de chaque relation (et éventuellement d'autres contraintes) déterminent quel type de relation est représenté. 1:n et m:n sont deux types de relations binaires :
C {Employee*,Company}
B {Book*,Author*}
Dans chaque cas, * désigne le ou les attributs clés. {Livre,Auteur} est une clé composée.
C est une relation où chaque employé travaille pour seulement un mais chaque entreprise peut avoir beaucoup de employés (1:n) : B est une relation où un livre peut avoir beaucoup de auteurs et un auteur peut écrire beaucoup de livres (m:n) :
Notez que les contraintes clés garantissent que chaque employé ne peut être associé qu'à une seule entreprise, alors que toute combinaison de livres et d'auteurs est autorisée.
D'autres types de relations sont également possibles : n-aire (ayant plus de deux composantes) ; cardinalité fixe (m:n où m et n sont des constantes ou des plages fixes) ; directionnelle ; etc. William Kent, dans son livre "Data and Reality", en identifie au moins 432 types, et ce uniquement pour les relations binaires. Dans la pratique, les relations binaires 1:n et m:n sont très courantes et sont généralement considérées comme particulièrement importantes pour la conception et la compréhension des modèles de données.
Pour expliquer ces deux concepts à l'aide d'un exemple, imaginez que vous disposez d'un système de saisie des commandes pour une librairie. La correspondance entre les commandes et les articles est de type "many to many" (n:m), car chaque commande peut comporter plusieurs articles, et chaque article peut être commandé par plusieurs commandes. En revanche, la recherche entre les clients et les commandes est de type 1:n, car un client peut passer plus d'une commande, mais une commande n'est jamais destinée à plus d'un client.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
fr.wikipedia.org/wiki/Database_model