Database da aggiornare....

di il
12 risposte

Database da aggiornare....

Buongiorno a tutti

Un mio caro amico, nonché meccanico di fiducia mi ha chiesto se potevo aggiornare un programma in access in cui tiene anagrafica clienti, vetture, e fatture.

La situazione è la seguente :

Mario Rossi -------- Veicolo A --------- Fattura n.1

Giorgio Bianchi ---------- Veicolo B -------- Fattura n.2 

Giorgìo Bianchi ----------- Veicolo C -------- Fattura n.3

Con una query, estraggo i dati di clineti e veicoli che poi vengono visualizzati in una form, e fino alla visualizzazione di clienti e veicoli nessun problema (relazione 1 a molti… giusto?); problema che nasce però (giustamente) nel momento in cui inserisco le fatture nella query , replicando le fatture n. 2 e 3 per tutti i veicoli di Giorgio Bianchi, quindi per capirci Giorgio Bianchi ha il Veicolo B con fatture 2 e 3 e il Veicolo C con fatture 2 e 3 

Non vorrei cambiare la struttura attuale del db (3 tabelle : clienti, veicoli e fatture)

Non chiedo codice ma degli spunti per aggirare il problema se possibile.

Grazie 

Buona Giornata a tutti

12 Risposte

  • Re: Database da aggiornare....

    Campi, chiavi e indici di fatture, vetture e clienti?

  • Re: Database da aggiornare....

    Grazie per la risposta 

    il campo “codice_cliente" (numerico nella tabella clienti), è presente nella tabella veicoli e nella tabella fatture

    La struttura della tabella veicoli è la seguente

    Id-Marca-Modello-codice_cliente ----eccc

    La tabella fatture ha la seguente struttura:

    Id-numero fattura-data-codice_cliente-----ecc

    codice cliente è chiave primaria nella tabella clienti

    cosi come id nella tabella fatture e veicoli

  • Re: Database da aggiornare....

    Forse è più semplice e preciso se alleghi l'immagine della finestra delle relazioni per vedere la struttura dell'ntero database.

  • Re: Database da aggiornare....

    Ok.

    09/08/2023 - scooter ha scritto:


    Con una query, estraggo i dati di clineti e veicoli

    io userei direttamente la targa come id vetture.

    select * from vetture where targa=nrtarga.

    relazioni la query 1 a 1 dal codice cliente ed hai i dati fiscali per la fattura…

    creata la fattura (mancherebbero i lavori svolti, km, ecc…), vuoi visualizzare l'elenco fatture attive?

    09/08/2023 - scooter ha scritto:


    (relazione 1 a molti… giusto?);

    giusto.

    09/08/2023 - scooter ha scritto:


    per capirci Giorgio Bianchi ha il Veicolo B con fatture 2 e 3 e il Veicolo C con fatture 2 e 3 

    io vedo fattura 2 veicolo b e fattura 3 veicolo c…

    se vuoi vedere le fatture di rossi:

    select * from fatture where cliente=sceltacliente

    se vuoi vedere le fatture per veicolo:

    select * from fatture where targa=nrtarga

    se vuoi vedere tute le fatture:

    select * from fatture

    09/08/2023 - scooter ha scritto:


    Non chiedo codice ma degli spunti per aggirare il problema se possibile.

    quale problema?

    09/08/2023 - scooter ha scritto:


    replicando le fatture n. 2 e 3 per tutti i veicoli di Giorgio Bianchi

    in che senso? che significa “replicando”?

  • Re: Database da aggiornare....

    Il problema è che i veicoli non hanno un campo univoco se non l'id chiave primaria…. la targa nemmeno c'è!

    quindi mario rossi, può avere n veicoli che hanno id 7, 15, 25 …. ecc

  • Re: Database da aggiornare....

    Sei proprio partito con il piede sbagliato, la Targa deve esserci sempre in quanto è la condizione primaria di univocità del record.

    Rivedi il progetto.

  • Re: Database da aggiornare....

    Crea la tabella infoveicoli con 

    Id pk

    Targa

    La relazioni 1 a 1 con veicoli… se proprio non vuoi aggiungere un campo alla tabella…

  • Re: Database da aggiornare....

    Bontà divina…

    Chi ha fatto il db avrà portato la macchina al primo tagliando… 

    La segretaria scrive targa e proprietario, poi i km.

  • Re: Database da aggiornare....

    09/08/2023 - Stifone ha scritto:


    Sei proprio partito con il piede sbagliato, la Targa deve esserci sempre in quanto è la condizione primaria di univocità del record.

    Rivedi il progetto.

    magari ci fossi partito io …..

    quello che ho descritto è quello che ho trovato!

  • Re: Database da aggiornare....

    09/08/2023 - sihsandrea ha scritto:


    Crea la tabella infoveicoli con 

    Id pk

    Targa

    La relazioni 1 a 1 con veicoli… se proprio non vuoi aggiungere un campo alla tabella…

    ok ….

    ma ci può essere una relazione uno a molti ….

    sto cercando di recuperare un'arrosto…..

  • Re: Database da aggiornare....

    Recuperare in che senso?

    Un form clienti, un form vetture e un form fatture?

    Fai prima a riscrivere tutto.

    Comunque, se non vuoi aggiungere il campo targa, puoi estendere 1 a 1 la tabella veicoli con, chiamiamola “infoveicoli”.

  • Re: Database da aggiornare....

    09/08/2023 - scooter ha scritto:


    meccanico di fiducia mi ha chiesto se potevo aggiornare un programma in access in cui tiene anagrafica clienti, vetture, e fatture.

    Puoi spiegare più dettagliatamente “cosa” vuole tracciare il tuo amico meccanico? Non gli interessa tracciare anche le singole “riparazioni”? 

    09/08/2023 - scooter ha scritto:


    il campo “codice_cliente" (numerico nella tabella clienti), è presente nella tabella veicoli e nella tabella fatture

    La struttura della tabella veicoli è la seguente

    Id-Marca-Modello-codice_cliente ----eccc

    La tabella fatture ha la seguente struttura:

    Id-numero fattura-data-codice_cliente-----ecc

    codice cliente è chiave primaria nella tabella clienti

    cosi come id nella tabella fatture e veicoli

    Abituati a nominare i campi chiave sempre in maniera ESPLICITA, ossia IDVeicolo, IDFattura. CodiceCliente va anche bene, ma per allinearti alla logica generale, ti consiglio di nominarlo IDCliente.

    09/08/2023 - Stifone ha scritto:


    Forse è più semplice e preciso se alleghi l'immagine della finestra delle relazioni per vedere la struttura dell'ntero database.

    Ti è stata fatta questa richiesta perchè la descrizione precedente appare insufficiente e/o inefficace.

Devi accedere o registrarti per scrivere nel forum
12 risposte