Neofita: consigli

di
Anonimizzato10868
il
6 risposte

Neofita: consigli

Ciao a tutti..
vorrei cimentarmi nella creazione di un DB e viste le mie lacune avrei bisogno di consigli.
Vorrei creare un DB di macchine e relativi controlli eseguiti.
In tabella macchine 2 campi : numero della macchina (es. 56 78 234 1 che dovrebbe essere in questo formato) e data scadenza rev (un formato data modificabile ovviamente una volta scaduta).
Tabella visite : campo Avarie (essendo una decina è possibile scegliere da elenco?) e possono essere una o più, la data del controllo, l'operatore , provvedimenti e risolto (di tipo si/no modificabile nel caso risolto in data successiva). Relazioni: uno a molti (numero macchina e avarie).
Problema 1: se trovo 2 avarie nella stessa data devo fare 2 record? Se mi serve un report delle macchine con i primi 4 numeri uguali (che distingue la tipologia) è possibile? Report con macchine di una categoria, lista delle avarie con date e se risolto?
A qualcuno sembrerà banale ma io mi perdo...

6 Risposte

  • Re: Neofita: consigli

    La logica che hai esposto è errata.

    Ogni Macchina può essere soggetta a molti controlli... e la RV non è altro che un controllo... PREVENTIVO non ACCIDENTALE... ma questo aggettivo non è altro che la CAUSALE del controllo.
    Tuttavia anche il TAGLIANDO è un controllo PREVENTIVO... conscadenza a Km...

    Quindi a mio parere avrai una Tabella AUTOMEZZI, una Tabella CONTROLLI legame 1-M
    La Causale dell'intervento(ACCIDENTALE/REVISIONE/TAGLIANDO ecc...) saranno quello che fa la differenza nella gestione del CONTROLLO.
  • Re: Neofita: consigli

    Buona giornata, willi;
    da neofita a neofita, partirei con le seguenti tabelle:

    Tabella Revisioni:
    ID Contatore Chiave primaria
    Numero_macchina Testo Indicizzato: Sì (Duplicati non ammessi)
    Data_revisione Data Data estesa

    Tabella Avarie:
    ID Contatore Chiave primaria
    Avaria Testo Indicizzato: Sì (Duplicati non ammessi)

    Tabella Operatori:
    ID Contatore Chiave primaria
    Operatore Testo Indicizzato: Sì (Duplicati non ammessi)

    Tabella Visite:
    ID Contatore Chiave primaria
    Numero_macchina Testo Indicizzato: Sì (Duplicati ammessi)
    Data_revisione Data Data estesa (in ACCESS è opportuno non avere campi duplicati; [Data_revisione] è già disponibile nella Tabella “Revisioni”. (Poi vedremo come risolvere con una Maschera collegata ad una Query piuttosto che ad una Tabella).

    Avaria_1 Testo Indicizzato: Sì (Duplicati ammessi)
    Operatore_1 Testo Indicizzato: Sì (Duplicati ammessi)
    Data_1 Data Data estesa
    Risolto_1 Si/No
    Nota_1 Memo

    Avaria_2 Testo Indicizzato: Sì (Duplicati ammessi)
    Operatore_2 Testo Indicizzato: Sì (Duplicati ammessi)
    Data_2 Data Data estesa
    Risolto_2 Si/No
    Nota_2 Memo

    Avaria_n Testo Indicizzato: Sì (Duplicati ammessi)
    Operatore_n Testo Indicizzato: Sì (Duplicati ammessi)
    Data_n Data Data estesa
    Risolto_n Si/No
    Nota_n Memo

    (Tante quanti sono gli interventi che ritieni possano essere ragionevolmente eseguiti su ogni vettura)

    Relazioni:
    Tabella Revisioni: Numero_macchina Uno a 8 Tabella Visite: Numero_macchina
    Tabella Avarie: Avaria Uno a 8 Tabella Visite: Avaria (per ogni [Avaria_numero] presente in Tabella "Visite").
    Tabella Operatori: Operatore Uno a 8 Tabella Visite: Operatore

    Maschera:
    Tutti i campi di “Visite” con Casella combinata rispettivamente su ogni:
    “Revisioni”, “Avaria” e “Operatore”
    In Intestazione maschera aprirei:
    una "Casella di testo" non associata ad alcun Origine controllo; in questa casella di testo andrei ad inserire i caratteri che identificano la macchina (nel Tuo esempio: 56 78); è possibile acquisire i dati in modo automatico.
    Dopo aver strutturato il Report, costruirei un "Pulsante di comando" per l'apertura del Report.

    Query:
    Tutti i campi della Tabella “Visite”; con Criterio di selezione sul campo[Numero_macchina] collegato alla "Casella di testo" che contiene i primi cinque caratteri che identificano la macchina.

    Report:
    Tutti i campi della Query sopra indicata; probabilmente escluderei i campi Memo per avere maggior sintesi dei dati.

    Non ho provato la procedura sopra indicata, ma dovrebbe funzionare.

    A disposizione.

    Buona giornata.
  • Re: Neofita: consigli

    Salve.
    Vorrei solo far notare che la situazione descritta dall'amico Giuseppe riguardo alla Tabella:
    Tabella Visite:
    ID Contatore Chiave primaria
    Numero_macchina Testo Indicizzato: Sì (Duplicati ammessi)
    Data_revisione Data Data estesa (in ACCESS è opportuno non avere campi duplicati; [Data_revisione] è già disponibile nella Tabella “Revisioni”. (Poi vedremo come risolvere con una Maschera collegata ad una Query piuttosto che ad una Tabella).

    Avaria_1 Testo Indicizzato: Sì (Duplicati ammessi)
    Operatore_1 Testo Indicizzato: Sì (Duplicati ammessi)
    Data_1 Data Data estesa
    Risolto_1 Si/No
    Nota_1 Memo

    Avaria_2 Testo Indicizzato: Sì (Duplicati ammessi)
    Operatore_2 Testo Indicizzato: Sì (Duplicati ammessi)
    Data_2 Data Data estesa
    Risolto_2 Si/No
    Nota_2 Memo

    Avaria_n Testo Indicizzato: Sì (Duplicati ammessi)
    Operatore_n Testo Indicizzato: Sì (Duplicati ammessi)
    Data_n Data Data estesa
    Risolto_n Si/No
    Nota_n Memo

    (Tante quanti sono gli interventi che ritieni possano essere ragionevolmente eseguiti su ogni vettura)
    esce fuori da tutte le teorie per normalizzare un DB, non puoi ripetere la stessa sequenza di più campi, nella solita Tupla (Record), ma dovrai fare un ulteriore Tabella che contenga quei record che si ripetono con idonei 'campi-ID' che si relazioneranno con altri rispettivi presenti nelle Tabelle interessate.
    Credo che sia così, comunque aspettiamo l'opinione di un esperto quale è Alex...
  • Re: Neofita: consigli

    Posso dire che mi trovo in pieno accordo con le tue osservazioni dal punto di vista tecnico, peraltro la mia ipotesi strutturale esprime chiaramente la mia visione del problema...
  • Re: Neofita: consigli

    Grazie, luky;
    mi hai fornito un argomento su cui riflettere.
    Ero convinto, da neofita, che il campo [Avaria_1] non fosse assimilabile in alcun modo ai campi con indice diverso [Avaria_2] ÷ [Avaria_n].
    La mia proposta mi sembrava permettesse una miglior visibilità degli interventi, se in un numero ragionevole, raggruppati tutti nello stesso Record.

    In ogni caso, se la cosa esce dalle teorie di normalizzazione, piuttosto che creare una nuova tabella, preferirei avere più record registrati nella stessa Tabella, ognuno dei quali riporta un intervento eseguito sulla stessa vettura, e recuperare tutte le avarie con una Query e, se necessario, renderle stampabili con un Report.

    Convengo con Te che il parere di Alex sarà illuminante.
    Buona serata.
    Cordialmente.
    Giuseppe.

    P.s. Scusami Alex avevo inviato il post prima di aver letto la Tua risposta. Credo mi convenga concedermi un anno sabbatico per approfondire le regole dei DB.

    Ringrazio dei preziosi consigli del Forum e, soprattutto, dei Tuoi; sei stato veramente molto paziente. Continuerò comunque a leggervi.
  • Re: Neofita: consigli

    Per me wylliecoyote fa domande sensate. Solo non è chiara la relazione fra N_Macchine e Avaria (hanno due significati completamente diversi), io credo avrebbe più senso fra Macchine.N_Macchina e Visite.N_Macchina. Per il resto una Revisione non implica necessariamente interventi (le due cose hanno significati diversi) e trovo sensato creare un campo DataScadenzaRevisione strettamente legato alla Macchina (del resto wylliecoyote preferisce modificarlo ad ogni scadenza). Al limite, se ci dovessero essere problemi di impostazione, wylliecoyote se ne accorgerebbe da solo. Io vorrei rispondere alle domande.
    - Il campo Avarie ha senso che sia una casella combinata per scegliere la decina di valori impostati.
    - Se trovo 2 avarie nella stessa data devo fare 2 record? Sì
    - Se mi serve un report delle macchine con i primi 4 numeri uguali (che distingue la tipologia) è possibile? Report con macchine di una categoria, lista delle avarie con date e se risolto? Sì, ecco:
    1. Crea una query dove importi la tabella Visite
    2. Trascina nella griglia i campi N_Macchina, Avaria, Data, Risolto
    3. Al campo N_Macchina, in corrispondenza del rigo Criteri: digita così
    Like [Digita la Tipologia]
    sullo stesso campo N_Macchina, ti consiglio di impostare pure Ordinamento: Crescente
    4. Salva con nome la query
    5. Crea un report impostato su questa query e salvalo con lo stesso nome
    6. Quando vorrai vedere/stampare il report, aprilo, ti apparirà una finestra dove dovrai digitare le prime 4 cifre (Tipologia), secondo il formato da te impostato (cioè con uno spazio in mezzo), seguito da un asterisco
    es. 56 78*
    N.B.: io parto dal presupposto che il campo N_Macchina sia di tipo Testo (essendo una sequenza di cifre e non un numero).

    P.S.: Il report si può costruire anche senza la query (con analoghe caratteristiche), ma di fronte a problemi del genere, preferisco ragionare così.
Devi accedere o registrarti per scrivere nel forum
6 risposte