RaouL_BennetH
23-04-2009, 11:24
Ciao a tutti :)
Ho diverse lacune da colmare per la comprensione su come rappresentare a livello di classi e oggetti, delle tabelle di un database che hanno fra di loro relazioni e vincoli.
Mi spiego meglio:
//Tabella Lavoratore
id_lavoratore
nome
cognome
//tabella TipologieContratti
id_tipoContratto
descrizione
//tabella CategoriaLavoratore
id_categoria
descrizione
//Tabella ContrattoLavoratore
id_tipoContratto
id_categoria
id_lavoratore
turno
....
Per quanto riguarda le tre tabelle principali, al momento mi sono limitato a rappresentarle con tre classi(Lavoratore, TipiContratto, Categoria).
Ho qualche perplessità su come procedere per la tabella 'ContrattoLavoratore'.
La rappresentazione delle entità che ho fatto sino ad ora è molto elementare:
public class Lavoratore
{
public int id;
public string nome;
public string cognome;
}
//et similia per le altre due
//ho poi definito un'interfaccia
Interface AzioniAziendali
{
void AddLavoratore(Lavoratore lavoratore);
void AddTipiContratto(TipiContratto tipoContratto);
void AddCategoriaLavoratore(Categoria categoria);
}
La prima cosa che mi è saltata agli occhi, è che l'interfaccia così come è non ha senso, dato che, dovendola implementare per le classi, dovrei far implementare appunto a dette classi metodi che a loro non servono.
Quindi, la prima domanda è:
Devo inevitabilmente utilizzare un'interfaccia specifica per ogni classe volendo 'abituarmi' ad essere obbligato a descrivere comportamenti?
La seconda invece riguarda proprio il dilemma della progettazione per la classe ContrattoLavoratore; Questa classe ha pochi campi in comune con le altre;
non vedo ereditarietà, ma intuisco che si debba progettare in modo che quando verrà fatto un inserimento o un update sul db, si debba tenere conto di relazioni e vincoli.
Grazie in anticipo come sempre a tutti :)
RaouL.
Ho diverse lacune da colmare per la comprensione su come rappresentare a livello di classi e oggetti, delle tabelle di un database che hanno fra di loro relazioni e vincoli.
Mi spiego meglio:
//Tabella Lavoratore
id_lavoratore
nome
cognome
//tabella TipologieContratti
id_tipoContratto
descrizione
//tabella CategoriaLavoratore
id_categoria
descrizione
//Tabella ContrattoLavoratore
id_tipoContratto
id_categoria
id_lavoratore
turno
....
Per quanto riguarda le tre tabelle principali, al momento mi sono limitato a rappresentarle con tre classi(Lavoratore, TipiContratto, Categoria).
Ho qualche perplessità su come procedere per la tabella 'ContrattoLavoratore'.
La rappresentazione delle entità che ho fatto sino ad ora è molto elementare:
public class Lavoratore
{
public int id;
public string nome;
public string cognome;
}
//et similia per le altre due
//ho poi definito un'interfaccia
Interface AzioniAziendali
{
void AddLavoratore(Lavoratore lavoratore);
void AddTipiContratto(TipiContratto tipoContratto);
void AddCategoriaLavoratore(Categoria categoria);
}
La prima cosa che mi è saltata agli occhi, è che l'interfaccia così come è non ha senso, dato che, dovendola implementare per le classi, dovrei far implementare appunto a dette classi metodi che a loro non servono.
Quindi, la prima domanda è:
Devo inevitabilmente utilizzare un'interfaccia specifica per ogni classe volendo 'abituarmi' ad essere obbligato a descrivere comportamenti?
La seconda invece riguarda proprio il dilemma della progettazione per la classe ContrattoLavoratore; Questa classe ha pochi campi in comune con le altre;
non vedo ereditarietà, ma intuisco che si debba progettare in modo che quando verrà fatto un inserimento o un update sul db, si debba tenere conto di relazioni e vincoli.
Grazie in anticipo come sempre a tutti :)
RaouL.