[Python] Concatenazione lato DB => Rebus

Simone Federici s.federici a gmail.com
Mer 21 Mar 2012 15:15:33 CET


2012/3/21 Daniele Varrazzo <piro a develer.com>

>  Column |          Type          | Modifiers
> --------+---------------------**---+-----------
>  name   | character varying(100) | not null
>  author | character varying(100) | not null   <- nota: non ce l'ho


fantastico immagino che posso dire di essere un emerito cretino :-)


> test=> insert into book values ('titolo', null);
> ERROR:  null value in column "author" violates not-null constraint

Sulla terra no. Postgres come vedi sopra forza le pkey a essere non null.
> Altri db forse non aggiungono questo vincolo, ma questo non vuol dire sia
> una cosa ragionevole da fare.
>

base terra chiama => marte


> Una relazione generica io non nego sia utile: quello che sostengo è che i
> db relazionali sono fatti *apposta* per prendere vantaggio dalle relazioni
> specifiche. In un db crei il modello di un dominio. Se vuoi una relazione
> specifica, vuol dire che stai modellando l'oggetto di base, l'"oggetto", e
> non gli oggetti che fai. Come dire, traslato in mondo Python, che le classi
> sono oggetti di primo ordine. Se tu nel database modelli "la classe" e
> "l'istanza" allora puoi fare relazioni generiche: praticamente metterai
> tutti i tuoi oggetti in una sola tabella e anzichè dire "seleziona tutti i
> libri" dirai "seleziona tutti gli oggetti che sono di tipo libro".
>

Fa cagare vero? Certo che lo fa. Ma così fai le cose generiche in un db.
> Dire "generico" e poi avere gli oggetti in diverse tabelle, cioè fare
> oggetti specifici, sono due modelli diversi, e non puoi applicare al
> secondo le caratteristiche del primo.
>
> Insomma: secondo me stai over-generalizzando dove non puoi - stai provando
> a trattare tabelle specifiche come oggetti generici. Sopra questo stai
> over-over-generalizzando considerando pkey composte. Sopra questo stai
> over-over-over-generalizzando considerando valori non ragionevoli per le
> pkey.


> E dici a me di restare a terra?


Non c'è che dire che ho preso na' toppa ponendomi un problema che non
esiste.

Per le relazioni generiche invece dissento.
L'utilità della relazione è indiscutibile, e anche se non è in una forma
che può essere definita "da manuale del vero DBA" è comunque uns tandard
che stà diventando de facto, ho visto parecchi shema che stanno evelvendo
con il concetto di content type.

E dai l'hai detto pure tu che il mono tabella fa cagare quindi perche
sputare su una soluzione ibrida?
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 :-)"


grazie della dritta, vuol dire che 1 stavo correndo a occhi bassi, 2 che la
soluzione che ho postato nella prima mail è già la soluzione definitiva

ciao
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120321/0b8e16af/attachment-0001.html>


Maggiori informazioni sulla lista Python