Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    ciao,
    quello che vuoi fare non centra con le relazioni.
    Un esempio che puoi gestire con le relazioni (restando sulle due tabelle che ci hai fornito) è che se elimini un editore puoi eliminare in automatico i suoi libri, modificando ON DELETE NO ACTION con ON DELETE CASCADE.

    Per il discorso di disabilitare tutti i libri quando viene disabilitato un editore lo puoi gestire con un trigger che viene scatenato quando si fa l'update della tabella editore.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    56
    Quote Originariamente inviata da nicolabiondo Visualizza il messaggio
    ciao,
    quello che vuoi fare non centra con le relazioni.
    Un esempio che puoi gestire con le relazioni (restando sulle due tabelle che ci hai fornito) è che se elimini un editore puoi eliminare in automatico i suoi libri, modificando ON DELETE NO ACTION con ON DELETE CASCADE.

    Per il discorso di disabilitare tutti i libri quando viene disabilitato un editore lo puoi gestire con un trigger che viene scatenato quando si fa l'update della tabella editore.
    Interessante questa cosa del trigger, dove posso approfondire?
    È una cosa che si setta sempre da sql o devo programmare io con un altro linguaggio? Tipo con php e simili insomma..

    E invece "on update" che gestisce? Credevo che questa voce mi permetteva di gestire questo caso.

  3. #3
    I trigger sono delle istruzioni SQL che vengono scatenate quando viene fatta una determinata operazione (INSERT, UPDATE oppure DELETE) su una tabella.
    Trovi un sacco di tutorial online (anche in questo sito) che spiegano come funzionano e come creare trigger.

    Nel tuo specifico caso ti servirà un trigger "ON UPDATE".

    Nessuno ti vieta di gestire questa cosa anche da PHP o da qualsiasi altro linguaggio di programmazione con cui avrai scritto la tua utility.
    Nel momento del salvataggio della form o della pagina web dei dati dell'editore lanci una query del tipo UPDATE libro SET stato=0 WHERE editore = ?
    Dove al ? devi sostiuite l'id dell'editore che stai aggiornando.

    ON UPDATE CASCADE riguarda sempre i vincoli di chiave esterna e ha senso solo se la chiave primaria non è di tipo AUTOINCREMENT (in quanto un campo di questo tipo non può essere aggiornato). Se aggiorni il valore della chiave primaria questo verrà propagato in tutte le tabelle che hanno il vincolo di chiave esterna con quella chiave primaria.

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.