Mapping di relazioni molti-a-molti (Visual Database Tools)Map Many-to-Many Relationships (Visual Database Tools)

Le relazioni molti-a-molti consentono di correlare ogni riga di una tabella con molte righe in un'altra tabella e viceversa.Many-to-many relationships let you relate each row in one table to many rows in another table, and vice versa. È possibile ad esempio creare una relazione molti-a-molti tra la tabella authors e la tabella titles per correlare ciascun autore con tutti i relativi libri e ciascun libro a tutti i relativi autori.For example, you could create a many-to-many relationship between the authors table and the titles table to match each author to all of his or her books and to match each book to all of its authors. Creando una relazione uno-a-molti da una delle tue tabelle, invece, si otterrebbe l'erronea indicazione che un libro può essere stato scritto da un solo autore o che ogni autore può scrivere un solo libro.Creating a one-to-many relationship from either table would incorrectly indicate that every book can have only one author, or that every author can write only one book.

Le relazioni molti-a-molti tra le tabelle vengono gestite nei database per mezzo delle tabelle di collegamento (junction table).Many-to-many relationships between tables are accommodated in databases by means of junction tables. Una tabella di collegamento contiene le colonne chiave primaria delle due tabelle da correlare.A junction table contains the primary key columns of the two tables you want to relate. Successivamente si creerà una relazione dalle colonne chiave primaria di ognuna delle due tabelle alle corrispondenti colonne nella tabella di collegamento.You then create a relationship from the primary key columns of each of those two tables to the matching columns in the junction table. Nel database pubs, la tabella titleauthor è una tabella di collegamento.In the pubs database, the titleauthor table is a junction table.

Per creare una relazione molti-a-molti tra tabelleTo create a many-to-many relationship between tables

  1. Nel diagramma del database aggiungere le tabelle tra cui si desidera creare una relazione molti-a-molti.In your database diagram, add the tables that you want to create a many-to-many relationship between.

  2. Fare clic con il pulsante destro del mouse sul diagramma e scegliere Nuova tabella dal menu di scelta rapida per creare una terza tabella,Create a third table by right-clicking the diagram and choosing New Table from the shortcut menu. che diventerà la tabella di collegamento.This will become the junction table.

  3. Nella finestra di dialogo Scegli nome modificare il nome di tabella assegnato automaticamente dal sistema.In the Choose Name dialog box, change the system-assigned table name. Ad esempio, la tabella di collegamento tra la tabella titles e la tabella authors ora si chiamerà titleauthors.For example, the junction table between the titles table and the authors table is now named titleauthors.

  4. Copiare nella tabella di collegamento le colonne chiave primaria presenti nelle altre due tabelle.Copy the primary key columns from each of the other two tables to the junction table. Così come per qualsiasi altra tabella, è possibile aggiungere delle colonne.You can add other columns to this table, just as you can to any other table.

  5. Nella tabella di collegamento impostare la chiave primaria in modo da includere tutte le colonne chiave primaria delle altre due tabelle.In the junction table, set the primary key to include all the primary key columns from the other two tables. Per informazioni dettagliate, vedere Procedura: Creazione di chiavi primarie (Visual Database Tools).For details, see How to: Create Primary Keys (Visual Database Tools).

  6. Definire una relazione uno-a-molti tra ciascuna delle due tabelle primarie e la tabella di collegamento.Define a one-to-many relationship between each of the two primary tables and the junction table. La tabella di collegamento dovrebbe essere sul lato "molti" di entrambe le relazioni create.The junction table should be at the "many" side of both of the relationships you create. Per informazioni dettagliate, vedere Procedura: creare relazioni tra tabelle (Visual Database Tools).For details, see How to: Create Relationships Between Tables (Visual Database Tools).

    Nota

    La creazione di una tabella di collegamento in un diagramma di database non comporta l'inserimento dei dati dalle tabelle correlate nella tabella di collegamento.The creation of a junction table in a database diagram does not insert data from the related tables into the junction table. Per informazioni sull'inserimento di dati in una tabella, vedere Creazione di query di accodamento (Visual Database Tools).For information about inserting data into a table, see Create Insert Results Queries (Visual Database Tools).

Vedere ancheSee Also

Utilizzare diagrammi di database (Visual Database Tools)Work with Database Diagrams (Visual Database Tools)