Tabelle lookup e valori definiti dall'utente

lunedì 21 settembre 2009 - 21.36

liuc Profilo | Junior Member

Per un database di gestione incidenti ho la necessità di gestire una tabelle di lookup :
TipoDiLesione.

L'utente deve poter definire i suoi valori per il tipo di lesione :
ad esempio :
incolume,
ferito,
morto

oppure

non inserito,
incolume,
ferito,
morto entro 24 ore
morto entro 30 giorni
sconosciuto

Resta comunque il fatto che a livello di reportisica si è interessati a conoscere il numero di morti e feriti negli incidenti stradali.

Come mi conviene codificare allora i valori nella tabella : con una coppia codice, definizione (lasciando ampia libertà di inserire altri valori) o aggiungendo un flag per stabilire se il tipo di lesione indicato è una ferita o, ancora, una ferita mortale?

alx_81 Profilo | Guru

Ciao
>Come mi conviene codificare allora i valori nella tabella : con
>una coppia codice, definizione (lasciando ampia libertà di inserire
>altri valori) o aggiungendo un flag per stabilire se il tipo
>di lesione indicato è una ferita o, ancora, una ferita mortale?
Secondo me la cosa migliore è fare una tabella che "raggruppa" i macro tipi di lesione e quindi (incolume, ferito, morto) e poi farne un'altra legata in 1 a molti con la prima che definisce dei sottogruppi come (quasi incolume, completamente incolume, ferito mortalmente, ferito lievemente, deceduto dopo n minuti ecc..)

--

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

liuc Profilo | Junior Member

In pratica, se ho capito bene, la prima tabella contiene valori precaricati e fissi (inclume, ferito, morto) e la seconda i valori definiti dall'utente ?

alx_81 Profilo | Guru

>In pratica, se ho capito bene, la prima tabella contiene valori
>precaricati e fissi (inclume, ferito, morto) e la seconda i valori
>definiti dall'utente ?
Se sono caricati dall'utente non so.. Dico semplicemente due livelli, così il primo ti permette di fare i report mirati e il secondo dettaglia l'informazione.

--

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

speedx Profilo | Junior Member

Ciao,
direi che una tabella per codificare i valori che inserisce l'utente ti serve per evitare che si possano inserire valori tipo: "morto" e "Morto".... o peggio...
E' utile anche nel caso che utilizzi una combo box per selezionare i valori.
L'unica cosa che rimane da decidere è come relazionare le due tabelle... io meterei un ID di relazione...
e farei una vista che unisce le tabelle per il report
//// Marcello C.

liuc Profilo | Junior Member

Ciao,
in effetti la tabella TipoDiLesione viene (dovrebbe) essere valorizzata dall'amministratore e gli utenti finali dell'applicazione si limitano ad selezionare da una combo i valori precaricati (proprio per evitare duplicati , o peggio).
La questione è che si vuole dare all'amministratore la facoltà di specificare le voci dei campi che poi compariranno nelle combobox dell'applicazione. Il dubbio che mi è venuto è: come faccio a stabilire se una determinata voce identifica un ferito o un morto (visto che poi alla fine nei report è questo che mi serve sapere).

Inizialmente avevo pensato a modificare la tabella aggiungendo due flag : flagFerita, flagFeritaMortale.
Ora sto valutando la possibilità di avere due tabelle di cui una "Fissa" con le macro voci INCOLUME, FERITO, MORTO, ALTRO
e una seconda (TipoDiLesione per l'appunto) che è quella caricata dall'amministratore che mantiene un riferimento alla prima.

Questo approccio, in effetti, posso applicarlo anche per la tabella TipoDiPersona, dove l'amministratore potrebbe definire per le macro voci CONDUCENTE, PASSEGGERO, PEDONE le sottovoci CICLISTA , MOTOCICLISTA (specifica di conducente) e quant'altro.

Se avete altre idee, fatemelo sapere.
Grazie.

alx_81 Profilo | Guru

>Ora sto valutando la possibilità di avere due tabelle di cui
>una "Fissa" con le macro voci INCOLUME, FERITO, MORTO, ALTRO
>e una seconda (TipoDiLesione per l'appunto) che è quella caricata
>dall'amministratore che mantiene un riferimento alla prima.
esatto, come ti indicavo prima.
Poi basta legare la tabella master a quella manutenuta dall'admin, con una relazione 1:n
--

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
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