Re: Metodos

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: ZerGY <ZkrGY(at)ono(dot)com>
Cc: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Juan Pablo Espino <jp(dot)espino(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Metodos
Date: 2005-07-18 16:41:05
Message-ID: c2d9e70e05071809416ecbe1c5@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> >Cual es la
> > idea? Cual es el problema que quieres resolver?
>
> Hola.
> Miren, no estoy seguro si quizas estoy complicandome demasiado. Yo pretendo
> implementar un esquema lógico.
> Imaginen el típico ejemplo de 'Profesores imparten Asignaturas'. Esto en un
> SGBDR serían simplemente dos relaciones 'unidas' por clave foranea, donde
> cada tupla sería un profesor y una asignatura respectivamente.
> Bien, eso en un SGBDR, pero en un SGBDOR la forma más lógica de
> implementarlo sería crear los tipos profesor y asignatura, con sus atributos
> y sus métodos ( por ejemplo, si un atributo es fecha de nacimiento del
> profesor, un método podría ser mostrarEdad() ), vaya, tan sólo estoy
> aprovechando lo se supone que me proporciona el paradigma de la orientación
> a objetos.
>
> Eso es lo único que pretendo, crear tipos con sus atributos y métodos. De
> hecho el estandar SQL3 lo permite, por eso me extraña que Postgres no lo
> implemente.
>
> Del mismo modo, también he estado buscando en Postgres el tipo REF
> (referencia) y no lo encuentro (también lo contempla el estandar SQL3).
> En el caso de que Postgres no implemente el tipo REF, ¿Cómo implementan
> ustedes las relaciones 1:N ? (Imaginemos que un profesor puede impartir mas
> de una asignatura). Con el tipo REF bastaría con un vector de referencias,
> pero en caso de que no esten implementadas... no se me ocurre como hacerlo
> (si la clave primaria de una asignatura es un entero, desde la relacion
> profesores, aunque cree un atributo que sea un vector de enteros (las
> asignaturas que imparte), no puedo asignarle a dicho vector la restricción
> de clave foranea).
>
CREATE TABLE profesor (
id int4 primary key
-- ,
--cualquier otro campo que quieras añadir
);

CREATE TABLE asignatura (
id int4 primary key
-- ,
--cualquier otro campo que quieras añadir
);

CREATE TABLE profesor_asignaturas (
profesor_id int4 references profesor(id),
asignatura_id int4 references asignatura(id),
primary key (profesor_id, asignatura_id
);

> Tengo bastantes dudas en éste sentido porque soy nuevo en Postgres. Estoy
> bastante acostumbrado a trabajar en Oracle y veo que aunque ambos sean
> SGBDOR, las cosas son bastante diferentes.
>
> Un saludo y gracias por responder.
>

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ricardo Fuentes Pereira 2005-07-18 16:43:42 Creacion de Trigger
Previous Message Alvaro Herrera 2005-07-18 16:36:22 Re: Metodos