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

    [ACCESS] consigli riprogettazione db

    salve

    ho la necessità di riprogettare un database...

    il nuovo database sarà costituito dall'unione di alcune tabelle di due database distinti (che hanno alcuni campi in comune con valori in comune, ma con ID diversi)



    come posso mantenere le vecchie relazioni di entrambi i database? posso fare in modo che nel nuovo database venga utilizzata una sola nuova chiave primaria?

    grazie

  2. #2

  3. #3
    DB_1
    - TB_DIPENDENTI (id, nome, cognome, codicefiscale)
    - TB_PARENTI (id_dipendente, nome, cognome, codfiscale)

    DB_2
    TB_DIPENDENTI (nome, cognome, codicefiscale,citta...)


    NUOVO_DB

    -TB_DIPENDENTI(id, nome, cognome, codicefiscale,citta...)
    -TB_PARENTI ( (id_dipendente, nome, cognome, codfiscale)


    il problema nella creazione del nuovo db sta nell'id... per mantenere alcune relazioni (DB_1) devo continuare a tenere l'id vecchio. ma come mi devo comportare per l'inserimento di nuovi dati? devo continuare a incrementare il vecchio id nel nuovo db? (è fattibile?) O devo creare un altro campo id nuovo?

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Bisogna pensarci bene.

    Noto che hai sempre il codice fiscale che potrebbe aiutarti.


    Io farei cosi:
    __________________________________________________ __

    Come premessa una UNION ALL di:
    DB_1 - TB_DIPENDENTI
    DB_1 - TB_PARENTI
    DB_2 - TB_DIPENDENTI

    Raggruppi per CodiceFiscale, Nome, Cognome, Citta, ecc
    ( escludi Id )

    verifichi di non avere duplicati nel codice fiscale diversamente
    qualche dato è incoerente

    Devi correggerlo manualmente

    Questo è solo il preliminare che ci da fiducia nel Codice Fiscale inserito.
    ( ma non ci servira per i nostri scopi )


    Ripeto: E assolutamente necessario che dopo il raggruppamento
    non ci siano duplicati sul Codice Fiscale

    __________________________________________________ _______

    ora puoi fare una UNION di: ( Chiamiamola UnDip )
    DB_1 - TB_DIPENDENTI
    DB_2 - TB_DIPENDENTI
    ( sempre escludendo Id )

    Ottieni tutti i dipendenti ad esclusione dei duplicati

    __________________________________________________ _________

    Crei la struttura di una nuova tabella dipendenti con
    campo Id autoincrementale __ ( Chiamiamola "TDip" )

    __________________________________________________ ________

    Fai una INSERT della tua UnDip nella TDip e Access
    ti genera un nuovo ID

    __________________________________________________ ______

    Crei la struttura di una nuova tabella Parenti con
    campo Id autoincrementale __ ( Chiamiamola "TPar" )

    __________________________________________________ ______

    Fai una INSERT della tua DB1-TB_PARENTI nella TPar e Access
    ti genera un nuovo ID

    __________________________________________________ _____

    Nella TPar Popolata cancelli il valore della Key secondaria
    che adesso fa riferimento alla vecchia tabella

    __________________________________________________ _____

    Poi sulla scorta delle vecchie tabelle e delle nuove tabelle
    del codiceFiscale che abbiamo BEN verificato essere univoco
    riusciremo certamente a UPDATARE la Keysecondaria di TPar


    Ma lascerei quest'ultimo punto al prossimo capitolo
    ammesso che scegli la strada che ti ho indicato



    .

  5. #5
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Originariamente inviato da nman
    Bisogna pensarci bene.

    Noto che hai sempre il codice fiscale che potrebbe aiutarti.

    verifichi di non avere duplicati nel codice fiscale diversamente
    qualche dato e incoerente

    .
    Solo una nota "burocratica" (ed un po' OT...)

    Il codice fiscale NON è univoco in Italia quindi NON puoi pensare di utilizzarlo come una chiave primaria

    Anche se non è ovviamente una cosa frequente, esistono e sono perfettamente corretti i casi di codici fiscali duplicati

    http://it.wikipedia.org/wiki/Omocodia

  6. #6
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Originariamente inviato da comas17
    Il codice fiscale NON è univoco in Italia
    Caspita questo non lo sapevo
    Non si finisce mai di imparare

    comunque nel caso fortunato che non ci siano duplicati nelle tabelle che ci
    interessano potrebbe procedere.

    Io il CF non lo pensavo come chiavePrimaria ma lo pensavo come strumento
    transitorio per Riagganciare la nuova Key autoincrementale generata
    alla sua tabella figlia


    .

  7. #7
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Originariamente inviato da nman

    Io il CF non lo pensavo come chiavePrimaria ma lo pensavo come strumento
    transitorio per Riagganciare la nuova Key autoincrementale generata
    alla sua tabella figlia

    .
    Si, si.. ho detto "chiave primaria" solo perchè si capisca il concetto.

    In ogni caso un campo della cui unicità non puoi essere certo, in ogni caso temo ti serva a poco...

  8. #8
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    La notte porta consiglio:


    Mi sono riletti l'articolo di Wilkipedia e vedo che possono esserci
    dei casi di Codice fiscale, nome, cognome, citta uguali.


    Significa che come giustamente dice comas17
    Anch'io ti sconsiglio di seguire la strada che ti ho indicato


    __________________________________________________ _

    Niente paura

    Troveremo un'altra soluzione


    .

  9. #9
    grazie a tutti per l'interessamento e i consigli

    spero di venirne a capo

  10. #10
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    La butto un pò li ma...crei un nuovo campo id e mantieni anche quello vecchio...quindi avrai campo a ( nuovo id) e campo b ( vecchio id), poi aggiorni le tabelle in cui hai relazionato questa tabella che chiamiamo principale. Quindi nella secondaria tu hai un campo (facciamo b2) che si relaziona al campo b, setti un nuovo campo ( x),fai un update della secondaria mettendo valore campo x = valore campo a ( tabella principale) WHEN campo b2=campo b. Adesso ti sei salvato le relazioni, poi su aggiunta dei record tu puoi lavorare su campo a e su campo b ( in questo caso +1 ovviamente).

    Spero ti possa servire questo mio suggerimento

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 © 2026 vBulletin Solutions, Inc. All rights reserved.