pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: lucas@presserv.org
To: daryl@brandywine.com
Cc: pgsql-sql@postgresql.org
Subject: Re: Fwd: Re: Referencing
Date: Mon, 31 Oct 2005 16:58:27 -0300
Message-ID: <20051031165827.50z4qeezsnms8kwk@www.presserv.org> (raw)
In-Reply-To: <4366471F.1020509@brandywine.com>
References: <20051028105908.onaegu44ynnog8os@www.presserv.org>
	<43624661.7000404@brandywine.com>
	<20051028130720.jxoth8izb468k44s@www.presserv.org>
	<4366471F.1020509@brandywine.com>

Quoting Daryl Richter <daryl@brandywine.com>:
> lucas@presserv.org wrote:
> > Quoting Daryl Richter <daryl@brandywine.com>:
> >> It's hard to say without knowing more precisely what you are trying to
> >> model, but I think this push you in the right direction:
> >>
> > Okay, but references between (output/input) and ACTIVITY tables is 1 to N.
> > OUTPUT/INPUT - 1
> > to
> > ACTIVITY - N.
> > And not N to 1 how the example.
> > Then the reference field need to be on "ACTIVITY (send/buy)" table.
> >
>
> Ahh, ok.  In that case I reverse it like so:
>
> -- This table hold everything in common for inputs/outputs
> create table transfer(
> id            serial   primary key
> );

Yes, I think it was what I wanted.
And how I check if a register in "Transfer" table is only referenciable by ONE
table (OR "output" OR "input")?? Would I create a Trigger like:
CREATE or REPLACE FUNCTION TG_output_check() RETURNS TRIGGER AS
$$
  BEGIN
   IF exists (select 1 from input where transfer_id=NEW.transfer_id) THEN
    Raise Exception 'This activity (transfer) is alread setted to INPUT';
   END IF;
   RETURN NEW;
  END;
$$ language 'plpgsql'; CREATE TRIGGER TG_output_check BEFORE INSERT or UPDATE
on OUTPUT EXECUTE PROCEDURE TG_output_check();
CREATE or REP...--- and the some function to INPUT ---

Or is there another way to check it?

Thank you again.




view thread (7+ messages)  latest in thread

Message-ID: <20051031165827.50z4qeezsnms8kwk@www.presserv.org>
Permalink:  ../20051031165827.50z4qeezsnms8kwk@www.presserv.org/
Also on:    postgresql.org/message-id/20051031165827.50z4qeezsnms8kwk@www.presserv.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: lucas@presserv.org, daryl@brandywine.com
  Subject: Re: Fwd: Re: Referencing
  In-Reply-To: <20051031165827.50z4qeezsnms8kwk@www.presserv.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox