Che tipo di vincolo e' quello nella figura?

venerdì 15 settembre 2006 - 10.27

bluland Profilo | Guru

salve, quando una tabella si presenta in questo modo che tipo di vincolo sta ad indicare??

saluti

Enzo


288x151 7Kb

micto27 Profilo | Senior Member

>salve, quando una tabella si presenta in questo modo che tipo
>di vincolo sta ad indicare??
>
>saluti
>
>Enzo
>
>

Si tratta di una Foreign Key "circolare", impostata cioè sulla tabella stessa anzichè verso un'altra tabella.

Un esempio potrebbe essere di una struttura gerarchica di Nodi dove ogni nodo figlio dovrebbe avere
un riferimento al nodo padre (ospitato sulla stessa tabella Nodi).

Ciao, Michele

alx_81 Profilo | Guru

>salve,
Ciao

>quando una tabella si presenta in questo modo che tipo
>di vincolo sta ad indicare??

A parte il fatto che non indichi quale sia la foreign key e quali siano i campi che definiscono la relazione, si tratta di una foreign key (appunto) dove viene definita una relazione 1:n tutta sulla medesima tabella.

Un esempio classico è quello di una gerarchia.. ad esempio una tabella dei dipendenti fatta così:

id_dipendente, nome, cognome, livello, id_responsabile.

l'id_dipendente viene legato in uno a molti con l'id_responsabile in modo da definire una relazione e dei determinati vincoli. Anche perchè l'id_responsabile deve essere un altro id_dipendente.
>
>saluti
>
>Enzo
>

Ciao
Alx81 =)

http://blogs.dotnethell.it/suxstellino

lbenaglia Profilo | Guru

>salve, quando una tabella si presenta in questo modo che tipo
>di vincolo sta ad indicare??

Ciao Enzo,

è un costraint FOREIGN KEY che fa riferimento alla tabella stessa.
Viene utilizzato per generare una relazione gerarchica in una tabella.
Il classico esempio è la relazione tra Manager ed Impiegato.
Se dai un'occhiata alla tabella Employees del database Northwind troverai proprio questo tipo di relazione.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

bluland Profilo | Guru

scusami che significa una relazione gerarchica?

ciao


EDIT: Da quello che ho capito si usa solamente per definire relazioni molto a uno, quindi come nel caso di employee tale tabella e' relazionata con un altra, e quella simbologia ne evidenzia che la relazione e'molto a uno?

saluti

lbenaglia Profilo | Guru

>scusami che significa una relazione gerarchica?
Il termine che ho usato è un po' fuori luogo, volevo semplicemente farti capire il concetto di gerarchia all'interno della tabella impiegati. n impiegati hanno 1 capo il quale a sua volta ha il suo capo... e così via fino all'amministratore delegato.

>EDIT: Da quello che ho capito si usa solamente per definire relazioni
>molto a uno, quindi come nel caso di employee tale tabella e'
>relazionata con un altra, e quella simbologia ne evidenzia che
>la relazione e'molto a uno?
No, sono relazioni 1 a molti. 1 capo può avere n dipendenti e a sua volta dovrà rispondere al suo capo. L'unico che non risponde ad alcun capo è l'amministratore delegato (ManagerID = NULL) anche se nella realtà deve rispondere agli azionisti, altrimenti lo silurano

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

bluland Profilo | Guru

una catena infinita insomma!
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5