> Il giorno 27/giu/2015, alle ore 17:32, Enrico Bianchi > <enrico.bian...@ymail.com> ha scritto: > > On 06/27/2015 04:50 PM, Giovanni Porcari wrote: >> Sono della fazione "ogni riga di tabella ha un identificativo univoco" > Ma una chiave composita in cui tutti gli elementi assicurano l'univocita` del > record e` un identificativo univoco ;) > Piu` che altro, mettere un id a tutti i costi non significa che il record da > esso identificato sia univoco. A tal proposito, Davide Bianchi scrisse un > articolo che esprime meglio il mio pensiero: http://soft-land.org/documenti/pk >
Si. Ovviamente la frase UN identificativo univoco intendeva dire UNA ed UNA SOLA colonna. Agli albori di Genropy (parlo del 2005 quando ancora pensavamo di fare una GUI in wx) l’adapter SQL era stato pensato per supportare chiavi multiple. Cioè se nel mio codice scrivevo pkey = db.table(‘foo.bar’).pkey ottenevo una tupla. E tutto il codice generico di framework doveva sapere che arrivava una tuple. Dopo circa 2 anni a furore di popolo e visto che nella quasi totalità dei casi la tupla conteneva un solo valore è stato deciso di sacrificare la teoria alla semplicità. Non so onestamente se sia stato una cosa giusta o meno. A volte le decisioni si prendono e amen. Ogni volta che scrivi codice specifico è abbastanza semplice gestire di volta in volta il caso di chiave singola o multipla. Quando scrivi codice generico gestire in tutti i passaggi il fatto che invece di un campo char o longint ti arrivi una tupla è semplicemente troppo dispendioso da implementere e quindi il compromesso è stato quello di dire : se DEVO essere certo che sia univoca nel trigger si genera una pkey composta. Un compromesso. Come sempre. La vita è piena di compromessi :D Ciao G _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python