Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [Mysql]Cosa serve il wizard "Vedi relazioni " presente in mysqladmin?

    Salce a tutti. In mysqladmin, cliccando su "struttura" di una tabella in fondo all'elenco delle colonne (sollo "seleziona tutti") c'è un link che mi incuriosisce. Si chiama "Vedi relazioni ". Cliccandoci si possono associare le chiavi esterne e impostare dei valori ON DELETE e ON UPDATE. Mi spiegate a cosa servono questa pagina di impostazione? In che modo aiuta a creare relazioni. Non capisco cosa facilita. A cosa serve? Grazie.

  2. #2
    Ciao, non è chiaro se sai cos'è una relazione

    Se sai cos'è mi sembra evidente, ti aiuta a creare e gestire le relazioni

  3. #3
    Ciao aquantide,
    si, credo di sapere cos'è una relazione , io le faccio tramite join.

    Ok, poniamo il caso banale di tre tabelle: TabClienti (id-cliente, nome, cognome, città),
    TabMerce (id-merce, NomeMerce, prezzo , quantità), TabOrdini (id-ordine, id-cliente, id-merce ).

    Volendo saper tutti gli ordini di una data persona, il signor Rossi, faccio la seguente query :

    codice:
    SELECT * 
    FROM TabOrdini 
    left join TabClienti on TabClienti .id-cliente = TabOrdini .id-cliente 
    left join TabMerce on TabMerce .id-merce = TabOrdini .id-merce  
    where TabClienti .nome = 'Rossi'
    Questa per me è una relazione, giusto? E' stata creata da codice. Ora cosa potrebbe servire in tutto ciò la pagina "Vedi relazioni "? Mi crea in automatico la query che ho scritto? Non capisco. Sarà semplice il discorso ma non ho capito la sua utilità.

    Grazie

  4. #4
    Dunque, brevemente: per lavorare su un database relazionale, semplificando, hai a disposizione 2 linguaggi:
    - il DDL (Data Definition Language) che ti consente di creare le tabelle e, appunto, le relazioni tra le tabelle.
    - l'SQL che ti consente di interrogare il database.

    La relazione quindi la definisci quando crei le tabelle, non quando fai le query.

    Nel tuo caso il campo TabOrdini.id-cliente è una chiave esterna in relazione con il campo TabClienti.id-cliente.
    Nella struttura della tabella TabOrdini puoi creare la relazione con TabClienti e impostare i vincoli (CONSTRAINTS) su cancellazione (ON DELETE) o modifica (ON UPDATE) dei record di TabClienti.

    In realtà il database potrebbe funzionare anche se non hai creato la relazione, ma la relazione ti aiuta a mantenere i vincoli e quindi il database consistente.

    Quello che fai tu è una JOIN tra due tabelle a livello SQL.


  5. #5
    quindi nel mio caso usando la pagina "Vedi relazioni ", se associo TabOrdini.id-cliente e TabClienti.id-cliente in InnoDB e se imposto ON DELETE e ON DELETE ON UPDATE mi permette semplicemente di tenere aggiornate fra di loro le due tabelle? Per esempio se elimino un cliente dalla tabella TabClienti si eliminano i record anche in tbOrdini?

    Scusa ma ancora nn capisco a cosa serve la pagina "Vedi relazioni ". Ho capito che aiuta a creare relazioni tra tabelle ma nel mio caso quale? Forse TabOrdini?(come tabella di relazione tra Tabclienti e tabMerci?) . scusami ma sono alle prime armi

  6. #6
    se imposto ON DELETE e ON DELETE ON UPDATE mi permette semplicemente di tenere aggiornate fra di loro le due tabelle? Per esempio se elimino un cliente dalla tabella TabClienti si eliminano i record anche in tbOrdini?
    Esatto serve a mantenere l'integrità:
    se imposti CASCADE, se cancelli un cliente, cancelli a cascata gli ordini di quel cliente;
    se imposti RESTRICT, se cerchi di cancellare un cliente che ha degli ordini, verrai bloccato.


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.