MySQL versione 4, default charset utf8, default engine innoDB,
sto riprogettando un pezzo di database ed ho alcune domande.
Per avere la funzionalita' FULL TEXT l'engine deve essere MyISAM, per avere le foreign keys l'engine deve essere InnoDB, e deve esserlo per entrambe le tabelle (padre, figlia/e)
Vorrei sapere come gestite di solito questo caso, nel senso che io ho rimosso i dati dinamici che mi interessano e li ho allacciati con un ID primary unique che sara' la fotocopia della tabella centrale con le foreign keys, ma usando una MyISAM.
Il tutto per avere quante piu' tabelle fixed possibili, al fine di migliorare le performances, e per avere l'opzione FULL TEXT in quei dati dinamici che mi interessano quali TYNITEXT, TEXT, o MEDIUMTEXT
Un esempio e' questo:
- tabella A con index int auto_increment primary
- tabella B con index propria int auto_increment e foreign key dell'index in A con ON DELETE CASCADE
- tabella C con index propria int che sara' identica a quella B, piu' dati di altro tipo dinamico, TEXT o altro
In realta' le relazioni sono molte di piu' ma questo e' il caso base che vorrei proporvi, a voi sembra corretto?
L'idea e' di usare joins sulle foreign per avere i dati, e il cascade per eliminarli in automatico dalla struttura (rimuovi un id, tutta la struttura annessa si syncronizza eliminando info pe rquell'id salvaguardando spazio) ma mi serve una FULL TEXT per avere piu' potenza con le ricerche.
Il problema e' che cosi' devo joinare l'ultima tabella "a mano" usando l'id della tabella B, e quando elimino qualche id da A devo ricordarmi di eliminare anche in C, ma senza avere riferimenti ad A (e qui e' fattibile tramite una query tipo:
DELETE FROM C WHERE index_c NOT IN(SELECT index_b FROM B);
)
Problema sormontabile, ma ce n'e' un altro ... non riesco a rappresentare tramite DBDesigner o MySQL Workerbench la relazione 1:1 che esiste tra l'id della tabella MyISAM C e quello della tabella B ... poiche' mi pianta foreign ovunque sulla C anche se in realta' non sono possibli/compatibili
Dico male? ... Insomma il sunto e':
- come gestiresete il caso foreign a cascata piu' full text in fondo alla cascata
- come raprresentereste in UML like, l'ultima relazione
Grazie per gli eventuali consigli![]()


Rispondi quotando
