Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    Dividere una tabella relazionata in 2 tabelle senza perdere i dati

    Come da titolo ho database access composto da piu tabelle relazionata tra loro.
    Ho la necessità di dividere una tabella in 2, spiego meglio ho queste tabelle:

    TB_ANAGRAFICA:
    _id
    _cono
    _indi
    _citta
    _pr
    _cap
    _tel
    _fax
    _cell
    _email
    _note

    TB_AUTO:
    _id
    _modello
    _targa
    _telaio
    _km
    _data
    _totale
    _pagato
    _inconveniente
    _note
    _idcliente

    TB_DETTLAVORO:
    _id
    _codice
    _descrizione
    _qta
    _prezzo
    _sconto
    _idauto

    il campo id di TB_ANAGRAFICA ha una relazione 1 a molti con il campo idcliente di TB_AUTO.
    il campo id di TB_AUTO ha una relazione 1 a molti con il campo idauto di TB_DETTLAVORO.

    Avrei la necissita di dividere la tabella TB_AUTO in due tabelle in questo modo:

    TB_AUTO:
    _id
    _modello
    _targa
    _telaio
    _idcliente

    TB_LAVORO:
    _id
    _data
    _km
    _inconveniente
    _totale
    _pagato
    _note
    _idauto

    avrei queste 2 tabelle al posto di TB_auto che avevo prima e le relazioni diventerebbero:
    id di TB_ANAGRAFICA con idcliente di TB_AUTO(quella nuova)
    id di TB_AUTO con idauto di TB_LAVORO
    id di TB_LAVORO con idlavoro di TB_DETTLAVORO (idlavoro sarebbe il campo id auto che c'era prima, gli ho solo cambiato il nome x rendere piu chiare le cose)

    Spero di essermi spiegato bene su cio che devo fare, ora è possibile eseguire questo cambio senza perdere i dati???
    in che modo??

  2. #2
    in questo momento avrai sicuramente 1 auto=1 lavoro, per cui l'id lavoro corrisponde all'id auto. senza tanti sbattimenti, io duplicherei (dall'interfaccia di access) la tabella auto nella tabella lavori, e poi toglierei dalle due i rispettivi campi che non servono. per legare poi il lavoro all'auto ti basterà eseguire UPDATE LAVORI SET ID_AUTO=ID


  3. #3
    Ciao e grazie per la risposta tempestiva,
    ma non ho ben capito cosa intendi per 1 auto = 1 lavoro

    puoi spiegarmi meglio?

  4. #4
    hai per caso un'auto dove hai fatto più lavori?

  5. #5
    Si, usiamo questo database ormai da un paio di anni e quasi tutti i clienti hanno almeno 2 macchine con almeno 3/4 lavori per macchina.

    se mi attendi 5 min faccio degli screenshot del data base cosi ci capiamo meglio

  6. #6
    e allora la faccenda si complica

    1. devi ottenere una nuova tabella auto usando una DISTINCT; portati dietro anche il vecchio ID
    2. l'attuale tabella auto diventa la tabella lavori
    3. poi aggiornerai la tabella lavori mettendola in JOIN con la tabella auto usando il vecchio ID, e nella tabella lavori in ID_AUTO metti il nuovo ID

  7. #7
    ho fatto gli scrennshot ma non riesco a postarli....

    Cmq io voglio dividere la tabella perche altriemnti in questo modo per ogni lavoro che inserisco ripeto sempre il modello la targa ed il telaio ad ogni record xo modello targa e talaio sono sempre gli stessi per la stessa macchina quindi inutile ripeterli ogni volta.
    poi credo sia anche più corretto dividerle prorprio da un punto di vista strutturale del database

    non ho mai usato il join....

  8. #8
    io per ora ho creato un nuova tabella (la nuova TB_AUTO) facendo una select con group by in base al modello targa telaio e idcliente

    ed ho ottenuto perfettamente la tabella TB_AUTO.
    poi in visualizzazione struttura ho aggiunto il campo id settato a contatore ed ho completato la tabella, l'ho relazionata con quella anagrafica ed ora quando apro il cliente XXX che prima aveva fatto per dire 5 lavori sulla punto e 3 sulla panda (e prima mi visualizzava 8 record 5+3)
    ora mi da solo 2 record punto e panda. e fino a qui tutto fila liscio. ora xo come la collegho con le altre 2 TB_LAVORO e TB_DETTLAVORO?? q

  9. #9
    ti ho già postato la soluzione. inizia a fare quello che puoi (almeno i primi due punti).

    ricordati di fare il backup del db

  10. #10
    tb_lavoro e TB_DETTLAVORO sono già collegate tra loro, giusto?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.