[ruby-it] Mysql e chiavi esterne
David Welton
davidnwelton a gmail.com
Gio 31 Ago 2006 12:39:28 CEST
> Tuttavia, le restrizioni imposte da mysql per le foreign key sono più
> alte di quanto io necessiti, in quanto io vorrei avere l'opportunità di
> settare il campo della chiave esterna come nullo o '0', senza
> preoccuparmi di avere una reale corrispondenza di chiave.
Allora non e` esattamente una chiave esterna, oppure il tuo DB forse
potrebbe essere strutturato in modo diverso. Avere una chiave esterna
che non punta a nulla viola la 'referential integrity'. Forse
potresti avere, nella tabella 'target', una riga a cui puntare per le
righe nella tabella di partenza 'nulle'. Non so se sono riuscito a
dirlo in modo chiaro...:-)
> Allora mi sto chiedendo, poichè Rails non è in grado di determinare
> automaticamente le corrispondenze tra le tabelle - sembra dunque una
> formalità definire chiavi esterne - non potrei non segnalare a mysql le
> foreign key e nella logica del db definire semplici campi int?
Si`, potresti benissimo farlo...infatti, quelli di Rails non sembrano
apprezzare molto il database se non come un datastore con un un
linguaggio di query, per certi versi, e quindi e` progettato proprio
in questo modo.
> Sto sbagliando?
Io non butterei via la referential integrity cosi` allegramente:-)
Comunque, dipende dal progetto... se e` una cosa poco importante,
probabilmente non cambia molto se dovessi perdere qualcosa qua o la`.
Se invece gestisci i soldi, sarebbe il caso di usare il database come
un database.
--
David N. Welton
- http://www.dedasys.com/davidw/
Linux, Open Source Consulting
- http://www.dedasys.com/
Maggiori informazioni sulla lista
Ml