2012/3/21 Daniele Varrazzo <p...@develer.com>

Una relazione generica io non nego sia utile:

On Wed, 21 Mar 2012 15:15:33 +0100, Simone Federici wrote:

Per le relazioni generiche invece dissento.

Stiamo dicendo la stessa cosa: anche io penso siano utili. Però...

E dai l'hai detto pure tu che il mono tabella fa cagare quindi perche
sputare su una soluzione ibrida?

...sto solo dicendo che se vuoi relazioni generiche devi accettare *altri* limiti, sia nel design che nelle performance, perché il design dei db relazionali è tipicamente pensato per sfruttare la specificità. È come il C: è veloce perché la struttura degli oggetti si conosce prima di eseguire il programma, e il compilatore, furbacchione, ne approfitta. Questo è troppo limitante? Allora c'è il Python, dove le strutture sono generiche, la cosa ci piace tanto, ma devi fare lookup anche quando respiri, e il linguaggio è 100 volte più lento.

Un db con relazioni generiche è come Python implementato in C: non è una cattiva idea di per sé, ma non puoi aspettarti che un "for" in Python sia veloce quanto un "for" in C.

E, al di là delle prestazioni, il tuo problema è che vuoi offrire tutte le feature del db (più qualcuna che non esiste e ti sei inventato sul momento... ;) *e* relazioni generiche. Qui hai un problema diverso: con il db ci puoi fare tanto, i db relazionali consentono di creare strutture troppo generiche... per offrire relazioni generiche. Strano ma vero. E buona fortuna a combatterci contro questa natura.


comunque il mio proposito è quello di dare una features in più a Django che
adesso non ha, quindi non la posso dare dicendo:
"non usate le generic relation cretini :-)"

Una affermazione più ragionevole sarebbe: se usate relazioni generiche e sperate che un join con quelle sia efficiente quanto una nativa, ALLORA sì che siete cretini. :)

Tra l'altro aggiungere una feature utile (pkey composte: hai tutto il mio appoggio) ma che finisce col non essere usabile con un'altra feature (generic relations: buone ma devi sapere quello che stai facendo) non sarebbe male comunque. Aggiungere una overgeneralizzazione che faccia andare django ancora più lento di quanto non sia... questo a me farebbe girare le scatole di più.


--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a