Re: consulta de novato en postgres

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Gustavo Pardo <dataneu(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: consulta de novato en postgres
Date: 2006-02-20 18:50:10
Message-ID: 20060220185010.GB7830@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gustavo Pardo escribió:
> hola, estoy comenzando con postgres y quería hacerles un par de consultas:
>
> 1. ¿existe en postgres el equivalente del tipo de dato "enum" de mysql? si no
> existe, ¿cómo acostumbran a resolverlo?

No, no existe. En modelo relacional, lo que se hace es tener una tabla
adicional con todos los valores posibles, y en la otra tabla pones una
llave foranea apuntando hacia esa tabla de valores.

Hay quien prefiere usar el truco del CHECK, pero esto puede ser
problematico porque no esta realmente normalizado. Por ejemplo si
tienes valores como "recien llegado", "en proceso", y "completado",
entonces esos strings se van a repetir en cada uno de los registros y
tendras un problema serio de rendimiento (ademas de ser un dolor de
cabeza tremendo cuando quieras cambiar un valor). Una alternativa es
usar "char" (un byte).

Otro problema del CHECK es que agregar un nuevo valor implica hacer
modificaciones de la estructura de la tabla, mientras que usando la
tabla de valores simplemente debes insertar un nuevo registro ahi.

La gente que viene de MySQL suele tenerle miedo a usar tablas de
valores porque el rendimiento es muy malo. Esto es un defecto de MySQL,
no del modelo. Postgres es mucho mas inteligente y maneja estas cosas
(joins) de mucho mejor manera.

> 2. CentOS instala por default la versión 7.4 de PostgreSQL, pero veo que va
> por la 8.1.3, qué me recomiendan, compilo la 8.1.3? o me quedo con la 7.4.

Si quieres usar la 8.1, te recomiendo que tomes el SRPM que se genera
para la version equivalente de Red Hat Enterprise y compiles un RPM para
tu sistema. Entiendo que deberian estar en alguna parte de
ftp.postgresql.org y sus mirrors.

> Sería algo así como la diferencia de versiones entre la 4.1.x y la 5.0.xx de
> mysql?

Nada que ver.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-02-20 19:01:04 Re: Porque los campos Arrays o Dimencionados
Previous Message Walter Perez 2006-02-20 18:49:34 unsubscribe