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

    Integrità referenziale

    Salve, sto lavorando ad un progetto ma ieri mi è sorto un dubbio riguardo MYSQL.
    Le tabelle sono relazionate tra loro tramite chiavi esterne, e fin qui tutto ok.
    Ho letto in giro che per sfruttare l'integrità referenziale (ON DELETE CASCADE) bisogna dichiarare le tabelle come innoDB invece che MYISAM che è impostato di default.

    In realtà funziona, ma la domanda che ora mi sorge è: questo tipo di implementazione è supportata da tutti gli hosting o rischio di trovarmi col sito buggato?
    Ci sono degli svantaggi usando questo tipo di tabelle?
    E' preferibile procedere così, o fare una DELETE CASCADE manuale (anche se stressante)?

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Ho avuto problemi su Aruba pare nn suporti innoDB. Ma nn chiesto info in merito
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469

    Re: Integrità referenziale

    Originariamente inviato da 1Dan
    ...fare una DELETE CASCADE manuale ...
    io faccio sempre così, per ragioni di portabilità.

    Alla peggio puoi sempre fare un trigger che faccia il "lavoro sporco" (ma anche questo evito quando possibile)

  4. #4
    Alla peggio puoi sempre fare un trigger che faccia il "lavoro sporco"
    uhm mi sa che mi manca questa. Cosa intendi come trigger?

  5. #5

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da 1Dan
    uhm mi sa che mi manca questa. Cosa intendi come trigger?
    mmmhh... ti suggerisco di leggere con cura la documentazione di mysql.

    In versione superbreve un trigger è una sorta di programmino (script) che puoi attivare all'avvenire di un qualche evento.

    Tipo, ad esempio, prima o dopo INSERT, UPDATE e DELETE (più altri)

    Qualcosa del tipo "prima/dopo di cancellare la riga della tabella X, cancella tutte le righe della tabella Y che hanno un certo campo=chiave della tabella X"

    O magari "quando inserisci o modifichi un certo campo della tabella Y calcola la somma delle righe e aggiorna la tabella X" e così via.

    Attenzione che i trigger son "belli", ma spesso lenti (sono attivati "per ogni riga"), e "stupidi" (spesso non sono indispensabili, ma vengono "lanciati" ugualmente)

    E tante altre cose, ovviamente. I trigger - palesemente - NON vengono attivati dai "trigger-occulti" di integrità referenziale "automatici"

  7. #7
    Uhm, mi sa che per una questione di portabilità del progetto, mi conviene fare tutto manualmente
    D'altronde il sito dovrebbe andare proprio su un hosting aruba.
    Qualcuno sa per caso i cms più comuni che metodo utilizzano?

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.