Newsgroup: it.comp.software.database
Titolo: ASP e SQL Server

Ciao NG,
vorrei un consiglio...
Sviluppo in asp e asp.net... e vorrei sapere se le relazioni tra tabelle
che si possono impostare direttamente da sql server possono o meno
facilitarmi il lavoro e rendere le mie applicazioni web piu' performanti.
Ho sempre usato l'sql gestendo le relazioni manualmente e vorrei (se
serve) fare un salto di qualita'.
Grazie a tutti.
Daniele Imberti
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Ho sempre usato l'sql gestendo le relazioni manualmente 
Scusa la domanda... ma se non usi un relazionale come relazionale...
che lo usi a fare?
Davide

 Davide
Ciao Davide,
in quel post intendevo dire che se ho due tabelle legate da un ID e ho
bisogno di estrarre un record formato da campi presenti in tutte e due le
tabelle uso solo il linguaggio SQL (magari con una INNER JOIN).
L'integrita' referenziale e' l'unico vantaggio che si ha usando le
relazioni impostate direttamente sul database ???
Forse non riesco a spiegarmi bene e genero un po' di confusione.
Faccio un piccolo esempio.
Due tabelle relazionate tra loro.
UserTable (con nome, cognome, IDregione) e
RegioneTable (con IDregione e nome regione)
unite dal campo IDregione
Che vantaggi ho a creare sul DB le relazioni "fisiche"???
Se devo conoscere tutti gli utenti e la relativa regione... non basta una
SELECT con una INNER JOIN ???
Non riesco a capire a cosa vado incontro se non imposto le chiavi esterne
o se non lego le tabelle.
Mi sai aiutare ? Spero di non aver creato troppa confusione.
Grazie


 serve) fare un salto di qualita'.
   Ammesso che con il termine "relazioni" tu intenda l'integrita` 
referenziale e con "gestendo le relazioni" l'uso corretto delle foreign 
key, direi che sia quasi fondamentale lasciarlo fare al DBMS, dato che 
lo fara` certamente meglio di quanto tu possa farlo applicativamente.
-- 
Alla prossima,
Marco


   Ho la vaga impressione che l'OP assegni al termine "relazione" quello 
che normalmente si intende quando si parla di DBMS relazionale... ;)
-- 
Alla prossima,
Marco

 SELECT con una INNER JOIN ???
Questo e' indipendente dalla presenza di una FK sulla tabella.
Davide

faccio un altro esempio...
tabelle ordini e dettaglio legate da IDordine...
l'integrita' referenziale mi vieta di inserire un record nella tabella
dettaglio con un IDordine che non sia presente nella tabella ordini ???
e mi permette di cancellare un ordine e automaticamente anche i record
nella tabella dettaglio relativi a quell'ordine ???
grazie


 nella tabella dettaglio relativi a quell'ordine ???
Esatto. Ma questo potresti farlo anche senza FK con un semplice trigger.
sicuramente ti vieta di cancellare l'ordine se esistono dei dettagli.
Davide

Molte grazie davide... adesso mi e' tutto piu' chiaro...


 lo fara` certamente meglio di quanto tu possa farlo applicativamente.
Concordo con quanto dici, pero' mi e' stato insegnato (vorrei sapere se
sbaglio e/o avere le vostre opinioni al riguardo) che se possibile e' meglio
implementare entrambe le cose: controlli sia a livello di db che  livello di
applicazione.
voi come vi comportate?
Ciao
  Stefano


   Se il controllo lo esegue il DBMS, lo lascio eseguire a lui. I 
vantaggi che ottieni sono molteplici:
	1) Prestazioni migliori;
	2) Implementazione unica per qualsiasi applicazione acceda
	   a quei dati (fatta una volta, fatta per sempre,
	   specialmente per quanto riguarda le modifiche "creative" o
	   di debug dei dati fatte a mano);
	3) Certezza maggiore dell'ottenimento del risultato sperato
	   (la gestione applicativa dell'integrita` referenziale
	   e` sempre piu` o meno prona ad errori, spesso disastrosi);
	4) Maggiore semplicita`: tipi di dato, procedure,
	   controlli logici, sono tutti congruenti, dato che e`
	   una soluzione tutta interna al DBMS.
-- 
Alla prossima,
Marco