Back to top

Autore Topic: Foreign Key id jos_user  (Letto 2034 volte)

Offline j3sus

  • Nuovo arrivato
  • *
  • Post: 2
    • Mostra profilo
Foreign Key id jos_user
« il: 22 Mar 2010, 12:54:17 »
Ciao a tutti, sto sviluppando dei nuovi componenti Joomla, e nelle tabelle del database relative che devono essere create, è presente il campo user che dovrebbe fare riferimento all'id della tabella jos_user, in maniera tale che qualunque modifica dell'utente nella tabella jos_user venga riflessa automaticamente in questa tabella tramite gli attributi ON DELETE CASCADE ON UPDATE CASCADE.

Il problema è che le tabelle di Joomla sono definite come tipo MyIsam, e tale tipo non supporta la definizione di Foreign Key in mysql. Come risolvere la questione?

Immagino che la modifica dell'id dell'utente nella tabella jos_user non sia concepita, essendo l'id un campo fisso, ma se ad esempio l'utente dovesse essere cancellato, in tal caso ci sarebbe, nella tabella di mia crezione, un riferimento ad un utente che però non esiste più. Se non fosse possibile definire una foreign key, sarei obbligato a definire un trigger che si occupi di cancellare tali voci?

Perchè Joomla non usa tabelle InnoDB?

Grazie a tutti in anticipo.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Foreign Key id jos_user
« Risposta #1 il: 22 Mar 2010, 14:42:36 »
ciao j3sus,
benvenuto sul forum!

le tabelle innodb sono molto più pesanti, computazionalmente parlando, delle corrispettive myisam, e non tutti i provider le mettono a disposizione: ecco il perché non sono usate di default.

nulla ti vieta di usarle, anche se a mia opinione un trigger è molto più efficiente.

scusa, ma ON UPDATE CASCADE su una primary key autoincrement?? (ecco perché non è concepita la modifica)

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif