Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Relazione tra tabelle sql
lunedì 19 novembre 2012 - 12.36
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Windows Server 2008 R2
|
Visual Studio 2010
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
lun 19 nov 2012 - 12:36
Ciao,
domanda ho una combo che carica le regioni d'italia ed in base alla scelta nella seconda combo carica le rispettive province...se in sql creao una relazione tra le due tabelle utilizzando i campi indicizzati, aumento in questo caso la velocità di ricerca e di visualizzazione delle province?
Però c'è un problema o almeno penso...la teballa regioni ha il campo id che è chiave primaria mentre nella tabella province il campo idregione è solo indicizzato non è una chiave primaria, tra questi due campi si può creare ugualmente una relazione oppure devono essere entrambi chiavi primarie?
ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
renarig
Profilo
| Expert
517
messaggi | Data Invio:
lun 19 nov 2012 - 23:47
>la teballa regioni ha il
>campo id che è chiave primaria mentre nella tabella province
>il campo idregione è solo indicizzato non è una chiave primaria,
Giusto
>tra questi due campi si può creare ugualmente una relazione
Si, Si fà cosi
>oppure devono essere entrambi chiavi primarie?
No, sarebbe un errore
oppure sarebbe un'altro tipo di relazione ( uno a uno )
Mentre la relazione regione provincie è uno a molti
( una regione molte provincie )
.
.
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
mar 20 nov 2012 - 00:53
quindi devo relazionare la chiave primaria della tabella regioni con l'idregione (che è indice) della tabella province
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
sab 24 nov 2012 - 01:15
>quindi devo relazionare la chiave primaria della tabella regioni
>con l'idregione (che è indice) della tabella province
al di là dell'indice.. una relazione ha sempre una parte di chiave primaria ed una esterna.
Se poi nella parte "esterna" c'è una pk, allora, come dice renarig è una 1:1.
Il fatto che tu faccia l'indice sulla chiave esterna non è obbligatorio, ma nella maggior parte dei casi aiuta e velocizza le query che molto probabilmente leggono i dati con relazione identica a quella definita fisicamente, e comunque ogni lookup che viene fatta per la verifica del vincolo. Quindi, non tutte le colonne di fk devono per forza essere indicizzate ma nella maggior parte dei casi aiuta.
Tuttavia, fai attenzione a non metter l'indice laddove non è così importante perchè avresti il rovescio della medaglia:
- frammentazione indici più probabile
- manutenzione indici più dispendiosa
- spazio occupato maggiore inutilmente
ciao
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Torna su
Stanze Forum
Elenco Threads
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 !