Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    5

    Relazionare 2 tabelle in MySQL

    Allora vi spiego quello che vorrei fare: vorrei che richiamando una pagina lo script in php vada ad interrogare un database e mi dica se quel sito è navigabile, completato ed altri stati in base alle mie esigenze

    Mi sono dunque fatto un database MySQL nel segunete modo:

    proprietà [le proprietà che un sito potrebbe avere]
    _____stato (terminato, da terminare, modificare etc...)
    _____path [il path di riferimento dell'icona corrispondente allo stato]

    siti [elenco dei siti che ho nella mia cartella htdocs]
    _____nome [nome dei siti]
    _____path [path dei siti]

    stato [lo stato che i siti hanno]
    _____nome [vorrei che mi desse la lista dei nomi dei siti]
    _____stato [vorrei che mi desse la lista degli stati]

    Quello che vorrei sapere è:
    come faccio a creare questa terza tabella in modo da creare una relazione tra le due?

    Grazie anticipatamente per ogni possibile dritta!

    Ho fatto uno screen di quello che vorrei ottenere:

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Secondo me bastano 2 tabelle:

    codice:
    ---+-----------+
    id | stato     | 
    ---+-----------+
    1  |  iniziato |
    2  |  finito   |
    ---+-----------+
    
    ---+--------------------+--------------------+----------+
    id | nome               | path               | id_stato |
    ---+--------------------+--------------------+----------+
    1  | www.pincopalla.com | /www/pincopalla.com|  1       |
    ---+--------------------+--------------------+----------+
    ciao

  3. #3
    cosi' come hai presentato la cosa ne bastano due di tabelle.

    proprieta => id_proprieta - stato - path

    siti => id_sito - id_proprieta - nome - path


    le due tabelle saranno in relazione tramite id_proprieta (senza accento per compatibilita' ascii)



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Beh! ... detto da due conta il doppio...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da piero.mac
    Beh! ... detto da due conta il doppio...
    [leccaculon]
    si ma quello che dici tu vale sempre il doppio!
    [leccaculoff]



  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    5
    Bella storia.... allora... grazie a tutti e due...

    Bè penso di aver fatto quanto detto da Banana Joe (HI HI HI) ma una cosa non mi è chiara.... ma devo creare degli indici? E poi quando mi faccio a dire che un sito può avere più stati?

    E per quanto rigurda agli id_XXX che tipo di valore deve essere?? Io ho messo INT 100 e per Id_proprietà in proprietà e id_siti in siti sono auto_increement... ho fatto buono?

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    se un sito può avere più stati puoi prendere 2 strade:

    1 nel campo stato inserisci gli id_stati separati da ; poi fai un explode per estrarre i singoli stati.

    2. seguendo la teoria dei db relazionali, quando c'è una relazione molti-a-molti devi creare una tabella aggiuntiva che abbia relazione uno-a-molti con le 2 tabelle interessate.

    codice:
    ---+-----------+
    id | stato     | 
    ---+-----------+
    1  |  iniziato |
    2  |  finito   |
    3  |  grafica  |
    ---+-----------+
    
    ---+--------------------+--------------------+
    id | nome               | path               |
    ---+--------------------+--------------------+
    1  | www.pincopalla.com | /www/pincopalla.com|  
    ---+--------------------+--------------------+
    
    relazione stati
    ---+---------+----------+
    id | id_sito | id_stato |
    ---+---------+----------+
    1  | 1       | 1        | 
    1  | 1       | 3        |
    ---+---------+----------+

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    5
    Buono per la seconda procedura, mi sarà più semplice creare degli script. Spero!

    Forse sarò snervante... ne sono conscia ma.... id in relazione stati deve essere auto_increment? Deve partire da 0 o 1? E' la prima volta che tento di fare un DB e penso si veda!

  9. #9
    Originariamente inviato da wyvern
    Bella storia.... allora... grazie a tutti e due...

    Bè penso di aver fatto quanto detto da Banana Joe (HI HI HI) ma una cosa non mi è chiara.... ma devo creare degli indici? E poi quando mi faccio a dire che un sito può avere più stati?

    E per quanto rigurda agli id_XXX che tipo di valore deve essere?? Io ho messo INT 100 e per Id_proprietà in proprietà e id_siti in siti sono auto_increement... ho fatto buono?
    INT e' un campo di 4 byte. Numerico quindi bit map. Cioe' ogni bit rappresenta un valore numerico. Al max puo' essere INT(10) oppure INT(11) se userai numeri con segno algebrico.

    Ogni tabella dovrebbe avere una chiave primaria, l'ideale e' un indice numerico autoincrement che identifichi un record senza riferimento al contenuto del record stesso.

    Che poi un qualcosa possa avere piu' proprieta' sicuramente puo' essere, ma piu' stati credo proprio di no, non puo' essere vivo e morto, aperto e chiuso, iniziato e finito ecc. Lo stato essendo una proprieta' univoca dovrebbe essere nella tabella "siti".

    l'id autoincrement parte da 1 e mai da zero se non viene forzato. Ma puoi farlo partire da dove ti pare.

    Per il resto vale quanto detto da gianiaz....



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    l'id io lo metto sempre auto_increment e primary_key.

    ciao

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.