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
Codice descrizione
venerdì 14 novembre 2008 - 10.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
seanmhall
Profilo
| Newbie
41
messaggi | Data Invio:
ven 14 nov 2008 - 10:26
Ciao gente,
cercavo approfondimenti (senza esito positivo) su un argomento semplice, ma importante: come struttura in maniera intelligente in un database una tabella generica per la gestione dei codice/descrizione che poi serviranno in tutte le altre tabelle.
Es (solo perchè mi spiego male)
una tabella utenti con un campo idTipoUtente
una tabella articolo con un campo idTipoArticolo
ecco vorrei una tabella unica per gesitre i vari idTipo/descrizione
idee?
grazie,
Sean
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 14 nov 2008 - 11:06
>Ciao gente,
Ciao!
>cercavo approfondimenti (senza esito positivo) su un argomento
>semplice, ma importante: come struttura in maniera intelligente
>in un database una tabella generica per la gestione dei codice/descrizione
>che poi serviranno in tutte le altre tabelle.
>idee?
Posso dirti la strada che di solito seguo io.
Innanzitutto, tutto quello che definisce un tipo (un dominio di valori ammessi per una particolare colonna) è una tabella con una chiave surrogata. E quindi ID - DESCRIZIONE.
L'id NON è autoincrementante, poichè molto spesso corrisponde all'indice di un ENUM che userò a livello applicativo.
Prendi l'esempio degli stati di un ordine:
Evaso = 1
Impegnato = 2
InAttesa = 3
...
ID - DESCRIZIONE in tabella
e Enum relativo nel mio CSharp..
Poi, potresti seguire due strade per la scelta del nome dei campi:
1) Usare sempre gli stessi per generarti un template e manutenere più facilmente il codice delle tue Stored Procedure / Query.
ID
Descrizione
2) Usare nomi esplicativi per dare più chiarezza
IDStato
Stato
Con lo stesso nome, il codice è più ripetibile, ma servono alias per capire meglio il codice.
Con nome parlante, il codice è già di suo parlante..
>grazie,
Di nulla!
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
seanmhall
Profilo
| Newbie
41
messaggi | Data Invio:
ven 14 nov 2008 - 11:16
Forse non ho capito il tuo messaggio del tutto. Ma allora tu crei tante tabelle quanti sono gli elenchi chiave/descrizione che ti serviranno?
ed tabella statiOrdine, tabella tipiUtente etc?
Io vorrei qualcosa di più elastico e svincolato dal codice, sempre che non abbia frainteso la tua risposta...
Grazie,
Sean
p.s. lo scopo ultimo di questo mio sistema è fare in modo che gli elenchi siano N e si possano usare in N tabelle su N campi data per buona l'esistenza di una tabella di incroci (non penso di poterne fare a meno) fra tabelle, campi ed elenchi...spero di essere stato chiaro, ma ho i miei dubbi :-)
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 14 nov 2008 - 12:06
>Forse non ho capito il tuo messaggio del tutto. Ma allora tu
>crei tante tabelle quanti sono gli elenchi chiave/descrizione
>che ti serviranno?
Certo! Normalizzazione
>Io vorrei qualcosa di più elastico e svincolato dal codice, sempre
>che non abbia frainteso la tua risposta...
Gli ultimi sistemi a domini multipli su di una tabella, li ho visti su AS400..
E su un sql mi sembra bruttino farlo.. alcuni database di cms sono costretti a seguire quella via..
Ma se puoi modellare, sinceramente terrei separato il tutto..
Mi viene comoda l'associazione con l'entità che poi utilizzerà anche l'applicazione...
>p.s. lo scopo ultimo di questo mio sistema è fare in modo che
>gli elenchi siano N e si possano usare in N tabelle su N campi
>data per buona l'esistenza di una tabella di incroci (non penso
>di poterne fare a meno) fra tabelle, campi ed elenchi...spero
>di essere stato chiaro, ma ho i miei dubbi :-)
Eh se sei costretto a farti un tabellone, fattelo pure..
Dipende anche dal sistema che devi implementare.
Ripeto, se puoi modellare è meglio..
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
seanmhall
Profilo
| Newbie
41
messaggi | Data Invio:
ven 14 nov 2008 - 12:09
Grazie mille, mi serviva un altro punto di vista e hai colto nel segno!
Grazie,
Sean
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 !