From: | Marcos Matamala <marcos(at)betazeta(dot)com> |
---|---|
To: | Jaime Casanova <jaime(at)2ndquadrant(dot)com> |
Cc: | Gaston Rider <gastonrider(at)hotmail(dot)com>, Postgres Lista <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Relacion de uno a uno o a ninguno |
Date: | 2011-04-06 17:31:39 |
Message-ID: | BANLkTim283vBC833deELoeaStzPpRgU9WQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El día 6 de abril de 2011 13:58, Jaime Casanova
<jaime(at)2ndquadrant(dot)com> escribió:
> 2011/4/6 Marcos Matamala <marcos(at)betazeta(dot)com>:
>>
>> Yo usaría un esquema como el siguiente.
>>
>> CREATE TABLE person(id BIGSERIAL PRIMARY KEY, lastname varchar(68) NOT
>> NULL UNIQUE);
>> CREATE TABLE person_email(id BIGSERIAL PRIMARY KEY, email varchar(200)
>> NOT NULL, person_id BIGINT REFERENCES person(id), UNIQUE(email,
>> person_id));
>>
>>
>
> Es decir que mantendrias dos índices unicos (el del PK y el del
> UNIQUE) y como los dos campos del índice del UNIQUE son NOT NULL es
> por definición candidato a PK... porque no poner como PK (email,
> person_id) y mantener un solo índice?
el unique(email, person_id) es por el caso de que un email es usado
por mas de un usuario(que si existen casos) aun que de todas formas
siempre creo una columna id en todas tabla ya que uso ORM's como
Doctrine (en su versión 1.2) que siempre esperan que la tabla
contengan una columna id
si bien puede ser un error o una mejorar no tener esa columna(id
innecesaria) para mi trabajo el beneficio de usar un ORM es mayor al
error, se entiende ?
Saludos.-
CREATE TABLE person(name varchar(64) PRIMARY KEY);
CREATE TABLE person_email(email varchar(200) NOT NULL, person_name
varchar(64) REFERENCES person(name), UNIQUE(email, person_name));
--
Marcos Matamala Fernández
Desarrollador Web
Betazeta Networks
Av. Providencia 929, Piso 4, Santiago, Chile
Fono: +56 (2) 6552215
www.betazeta.com
From | Date | Subject | |
---|---|---|---|
Next Message | Guillermo Villanueva | 2011-04-06 17:43:47 | Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Actualización de servidor |
Previous Message | Jaime Casanova | 2011-04-06 16:58:07 | Re: Relacion de uno a uno o a ninguno |