From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | Borja Martín <borja(at)dagi3d(dot)net> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: |
Date: | 2004-04-02 13:50:08 |
Message-ID: | 20040402135008.GD31403@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Fri, Apr 02, 2004 at 02:27:49PM +0200, Borja Martín wrote:
> supongamos que tengo en la tabla baskets la siguiente fila:
> +----+---------+------------+--------+
> | id | user_id | orders_ids | date |
> +----+---------+------------+--------+
> | 1 | borja | 139|140 | 200402 |
> +----+---------+------------+--------+
Esto quiere decir que tu modelo no está correctamente normalizado. Yo
trabajé en una empresa que tenían un modelo así y creeme, no es
agradable. Si puedes, corrígelo, y todas las aplicaciones que lo usen.
A la larga, es menos trabajo, y mientras antes mejor.
(Puedes crear una vista que genere esta versión no normalizada a partir
de la normalizada para mantener compatibilidad mientras corriges las
aplicaciones)
> se podria en un solo query obtener los orders_ids por separado(139 y
> 140) para luego hacer el query SELECT * FROM baskets WHERE baskets.id
> = 1 AND (orders.id = 139 OR orders.id = 140) ?
Si, se puede, pero es doloroso y hay que saber la cardinalidad de
antemano. Checa la función split_part().
--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
Major Fambrough: You wish to see the frontier?
John Dunbar: Yes sir, before it's gone.
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2004-04-02 13:56:21 | Re: Acerca del cambio reciente de la lista de correos |
Previous Message | Ricardo De Castro Aquino | 2004-04-02 13:28:06 | Re: Acerca del cambio reciente de la lista de correos |