Prestazioni e Relazioni

di il
8 risposte

Prestazioni e Relazioni

Ciao a tutti, premetto che non sono un programmatore, sto imparando, sto provando a fare un piccolo db di prova per caipre un po le relazioni, però sono interessato anche alle prestazioni, stavo pensando alla classica tabella Persona, con indirizzo, CF, etc. la mia domanda è questa:
Per i campi CAP e PROVINCIA conviene di più creare delle tabelle a parte e relazionarle alla tabella Persona o è meglio inserire i campi nella tabella stessa e avere quindi dei dati ridondanti?

Grazie

8 Risposte

  • Re: Prestazioni e Relazioni

    Ehmm, non sono un esperto del campo pero'. credo sia piu' saggio creare a parte una tabella CAP CITTA etc perche' in quella tabella (nei casi reali) potrebbere essere utile inserire altre informazioni come REGIONE,CODICE ISTAT, CODICE CATASTALE, CODICE ISTAT REGIONE e magari altre cose che sono specifiche dell'applicazione che vai a scrivere.
    Poi magari esce fuori che una struttura del genere non e' normalizzata nemmeno alla terza forma (cosi' metto le mani avanti dall'aver detto una sciocchezza ), ma nei casi reali non e' sempre vantaggioso applicare una normalizzazione estrema.
  • Re: Prestazioni e Relazioni

    premetto che non sono un programmatore,
    Il modello E-R si puo' studiare senza sapere nulla di programmazione, anzi credo sia pure meglio.
  • Re: Prestazioni e Relazioni

    È corretto avere 2 tabelle relazionate così:

    Persone
    IDPersona (PK)
    Nome
    Cognome
    CodiceFiscale
    ...altri campi tipicamente anagrafici...
    Indirizzo (solo la via e civico...)
    IDComune (FK)

    Comuni
    IDComune (PK)
    Comune
    CAP
    Provincia
    Regione
    ...codice ecc...altri campi come indicati da HATFIELD

    Relazione Comuni.IDComune uno-a-molti Persone.IDComune
  • Re: Prestazioni e Relazioni

    Però sono interessato anche alle prestazioni,
    Ancora devi cominciare e gia' ti fai questi problemi.
    Il decadimento di prestazioni nella soluzione a 2 tabelle e' inavvertibile, ma la scorrettezza del modello, si'.
    Tra parentesi, mi ricordo che le analisi del modello E-R erano indirizzate piu' verso la correttezza formale, piu' che sulle conseguenze del carico sul sistema.
    E' per caso cambiato qualcosa nel (molto) frattempo ?
  • Re: Prestazioni e Relazioni

    Ha ragione HARFIELD.
    Occorre una tabella specifica per i comuni d'Italia che, tra l'altro, queste tabelle le trovi già pronte sul web +/- aggiornate.

    Non si crea mai una relazione perché può accadere, ed è già successo in passato, che alcuni comuni vengano 'spostati' di provincia, oppure accorpati (unificati) sotto un solo comunque, ecc.

    Se crei una relazione poi in caso di variazioni non te ne liberi più, quindi evitare la relazione con IDComune come FK è cosa saggia e lungimirante.

    Il Comune va acquisito a livello di applicazione tramite una funzione di ricerca, che restituisca i dati che servono.
  • Re: Prestazioni e Relazioni

    Occorre una tabella specifica per i comuni d'Italia che, tra l'altro, queste tabelle le trovi già pronte sul web +/- aggiornate.
    Non si crea mai una relazione perché può accadere, ed è già successo in passato, che alcuni comuni vengano 'spostati' di provincia, oppure accorpati (unificati) sotto un solo comunque, ecc.
    Se crei una relazione poi in caso di variazioni non te ne liberi più, quindi evitare la relazione con IDComune come FK è cosa saggia e lungimirante.
    Il Comune va acquisito a livello di applicazione tramite una funzione di ricerca, che restituisca i dati che servono.
    Bella osservazione, che tra l'altro ricade in quei tipici ragionamenti che si fanno quando si analizza un modello E-R.
    web +/- aggiornate
    Esatto, piu' o meno aggiornate, chi piu' chi meno.
  • Re: Prestazioni e Relazioni

    vinny74man ha scritto:


    Ciao a tutti, premetto che non sono un programmatore, sto imparando, sto provando a fare un piccolo db di prova per caipre un po le relazioni,

    vinny74man ha scritto:


    Per i campi CAP e PROVINCIA conviene di più creare delle tabelle a parte e relazionarle alla tabella Persona o è meglio inserire i campi nella tabella stessa e avere quindi dei dati ridondanti?
    A me sembra che l'utente ha esposto una situazione "base", se non altro per capire come funzionano le relazioni.

    LeoFar ha scritto:


    Non si crea mai una relazione perché può accadere, ed è già successo in passato, che alcuni comuni vengano 'spostati' di provincia, oppure accorpati (unificati) sotto un solo comunque, ecc.

    Se crei una relazione poi in caso di variazioni non te ne liberi più, quindi evitare la relazione con IDComune come FK è cosa saggia e lungimirante.
    Per queste complicazioni si può sempre ovviare aggiungendo in tabella Comuni un campo DataAttribuzione. Se un Comune ha più attribuzioni storiche, una query può fare in modo di elencare solo i valori più recenti.
  • Re: Prestazioni e Relazioni

    A me sembra che l'utente ha esposto una situazione "base", se non altro per capire come funzionano le relazioni.
    Si' e' una casistica abbastanza banale.
    Pero' se si ammette la possibilita' che le entita' CAP COMUNE PROVINCIA non siano statiche tra loro, ma possono cambiare nel tempo, e' lo stesso modello E-R che impone di creare una tabella a parte perche' viene a cadere non mi ricordo quale condizione di normalizzazione (o comunque renderebbe obbligatorio aggiornare la tabella clienti quando cambia un comune, il che non e' una bella cosa).
    Anche se e' un esempio di base per cominciare, meglio se quelli che vogliono imparare tengano presenti queste considerazioni che possono sembrare di margine (come ad esempio comuni accorparti, soppressi o spostati).
    Nei casi reali trascurare queste condizioni di margine porta ad rendere il funzionamento di un software non ottimale.
    Comunque ho visto trascurare questioni anche molto piu' rilevanti in sw abbastanza complessi che hanno comportato l'impossibilita' di gestire certe situazioni.
    Per queste complicazioni si può sempre ovviare aggiungendo in tabella Comuni un campo DataAttribuzione. Se un Comune ha più attribuzioni storiche, una query può fare in modo di elencare solo i valori più recenti.
    Si', e' la soluzione corretta e mi sembra che in alcune tabelle su internet sia riportata questa informazione.
Devi accedere o registrarti per scrivere nel forum
8 risposte