Relazione

giovedì 25 febbraio 2010 - 15.51

zerep Profilo | Newbie

Ciao a tutti,
chiedo un chiarimento su come sia meglio progettare una relazione fra due tabelle.
Tab Aziende: Id (integer) chiave primaria, NomeAzienda (varchar)
Tab Dipendenti: Id (integer) chiave primaria, NomeDipendente

Per legare 1:n aziende:dipendenti, è meglio creare un indice Integer in Dipendenti relazionato a Id della tabella Aziende oppure un indice varchar relazionato a NomeAzienda (messo a sua volta ad indice) della tabella Aziende?

Grazie per l'aiuto.

ridaria Profilo | Expert

>Ciao a tutti,
>chiedo un chiarimento su come sia meglio progettare una relazione
>fra due tabelle.
>Tab Aziende: Id (integer) chiave primaria, NomeAzienda (varchar)
>Tab Dipendenti: Id (integer) chiave primaria, NomeDipendente
>
>Per legare 1:n aziende:dipendenti, è meglio creare un indice
>Integer in Dipendenti relazionato a Id della tabella Aziende
>oppure un indice varchar relazionato a NomeAzienda (messo a sua
>volta ad indice) della tabella Aziende?
>
Nella tabella aziende hai il campo id, settalo di tipo Int, e di tipo Identity e di tipo chiave primaria.

Nella seconda tabella: uda in campo di tipo int, chiamalo "idAzienda".

Questo è il modo classico con cui legare tabelle come da manuale.

Credo che legarle utilizzando campi che possono essere modificati come nomeAzienda potrebbe causarti problemi in futuro.

Ciao




>Grazie per l'aiuto.

Riccardo D'Aria

lbenaglia Profilo | Guru

>chiedo un chiarimento su come sia meglio progettare una relazione
>fra due tabelle.
>Tab Aziende: Id (integer) chiave primaria, NomeAzienda (varchar)
>Tab Dipendenti: Id (integer) chiave primaria, NomeDipendente
>
>Per legare 1:n aziende:dipendenti, è meglio creare un indice
>Integer in Dipendenti relazionato a Id della tabella Aziende
>oppure un indice varchar relazionato a NomeAzienda (messo a sua
>volta ad indice) della tabella Aziende?
la prima, ovvero definire la colonna AziendaID nella tabella Dipendenti, creare un constraint FOREIGN KEY che definisca una relationship con la tabella Aziende(AziendaID) ed indicizzare tale colonna con un indice non clustered.

In questo modo ad 1 dipendente corrisponde 1 azienda, e ad 1 azienda corrispondono n dipendenti.

>Grazie per l'aiuto.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5