[Python] Multiple primary key? Era: Red Baron

enrico franchi enrico.franchi a gmail.com
Lun 29 Giu 2015 01:22:05 CEST


2015-06-28 10:01 GMT+01:00 Simone Federici <s.federici a gmail.com>:

> ognuno ha le sue best practice, perņ alcune sono meglio delle altre.
>

E invece no. Il problema che io ho trovato e' proprio che ognuno ha le sue
best practice.

Disclaimer: io vengo dalla scuola in cui se uso un db relazionale, voglio
usare il modello relazionale come e' stato concepito, non come e' stato
recepito per evidenti limiti storici delle implementazioni.

Poi e' accaduto Piro. Non ho capito come la pensa, ma con alcune
osservazioni mi ha semplicemente fatto capire che entrambi gli approcci
possono avere senso. Da parte mia ho formalizzato il tutto con il fatto che
non e' che ognuno deve avere le sue best practice, ma che sono i problemi
stessi a dettare le best practice. E che, tipicamente, gli indici
auto-generati sono e restano un obrobrio, ma semplicemente a volte non se
ne puo' fare a meno (e spesso per motivi completamente diversi da quelli
normalmente sbandierati -- incidentalmente sono molto d'accordo con alcuni
dei commenti di Simone e di Giovanni sul perche' non usarli).

Alla fine dei conti il punto e' che scegliere "indipendentemente" un
approccio o l'altro portera' ad errori in un numero consistente di casi (e
si, un tool che mi costringe ad un approccio o all'altro mi costringera' a
sbagliare in un numero non trascurabile di casi -- posso conviverci? a
volte si a volte no; sono anche d'accordo che nel caso specifico, se si
deve supportare un solo approccio, ha senso fare quello che fa Giovanni,
fosse anche solo per il fatto che tutti quelli che vengono da MySQL -- e
che si ostinano con MySQL -- si aspettano le cose cosi').

Dopo di che, mi dispiace, ma ho anche capito cosa non mi tornava: adoro
l'approccio relazionale per la *query* dei dati. Ma ho sempre visto
qualcosa di sbagliato nelle altre parti di SQL (che per inciso sono anche
quelle che tirano a mano complessita' maggiore). E di fatto il punto chiave
e' proprio che per una base di dati vera non voglio *assolutamente*
mutabilita' per svariati motivi [viceversa, e' assolutamente ok per un
sistema di storage di supporto].

Il punto chiave e' che proprio il modo in cui la mutabilita' di SQL ci
consente di modellare il mondo, ci fa modellare il mondo male. Ma questo e'
un'altro discorso.




-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML č stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150629/ae048fa5/attachment-0001.html>


Maggiori informazioni sulla lista Python