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.
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 |