Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    MySql - collegamenti concettualmente errati ad altre tabelle

    Salve,

    mi sono accorto che ho fatto degli errori nella costruzione del mio database. Ho "collegato" (anche se effettivamente non ho messo le chiavi esterne) delle tabelle per mezzo di varchar. Vorrei modificarle, e associarle i vari id (che sono int)

    Le mie tabelle per esempio sono queste :

    codice:
        tableMain
        id (int)
        trackid(varchar)
        data(text)
    
        tableArtist
        idArtist(int)
        ref(varchar)
        artist(varchar)
    
        tableEvent
        idEvent(int)
        ref(varchar)
        event(varchar)
    tableArtist e tableEvent sono "linkati" a tableMain prendendo come riferimento la stringa trackid. Esempio :

    codice:
        tableMain
        1       abc    primo
        2       def    secondo
        3       ghi     terzo
        
        tableArtist
        1       abc    artist2
        2       abc     artist4
        3       ghi     artist5
        4       def     artist1
        5       ghi    artist3
        
        tableEvent
        1       def     event1
        2       abc    event5    
        3       222     event3
        4       ghi      event2
        5       abc     event4
    Ecco. Io vorrei che diventasse così, ovvero al posto dei ref sostituire id invece che trackid, così cambio il tipo e lo metto int :

    codice:
        tableMain
        1       abc     primo
        2       def     secondo
        3       ghi     terzo
        
        tableArtist
        1       1     artist2
        2       1     artist4
        3       2     artist5
        4       2     artist1
        5       3     artist3
        
        tableEvent
        1       2     event1
        2       1     event5    
        3       2     event3
        4       3     event2
        5       1     event4
    Posso farlo semplicemente utilizzando MySql (magari assegnando delle chiavi esterne potrebbe arrangiarsi lui? ) oppure conviene costruirmi uno script in PHP?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    Risolto :

    codice:
    UPDATE tableArtist, tableMain
        SET tableArtist.ref = tableMain.id
        WHERE tableArtist.ref = tableMain.trackid
    
    UPDATE tableEvent, tableMain
        SET tableEvent.ref = tableMain.id
        WHERE tableEvent.ref = tableMain.trackid
    Grazie comunque

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.