[EMAIL PROTECTED] wrote:
Ok,
But the problem is becouse the "buy" and "send" tables referencing with other
father table, wich is different.
I shoud not create a spent table to put the "buy" and "send" values
becouse the
entire database is more complex than it. look:

create table output(
id serial primary key,
client integer references clientes,
fiscal_number varchar(30),
print_date date,
...
);
  create table SEND(
   id serial primary key,
   output integer references input,
   product_id integer,--references....
   value money
  );
create table input(
id serial primary key,
supplier integer references suppliers,
employee varchar(30),
...
);
  create table BUY(
   id serial primary key,
   input integer references input,
   product_id integer,--references....
   value money
  );

---and---

create table financial(
  id serial primary key,
  cred_deb smallint,
  value money,
  references integer references ???, --<<-HERE IS THE PROBLEM, it will
reference
to buy OR send table
);

How looked, the "buy" and the "send" table is identical except the father
references (INPUT or OUTPUT)... Then I shoud not create ONE table (spent) wich
has these informations.
And now my question: Is there a way to references (financial) with two
diferents
tables in the some row? Or need I create two diferents rows???

Thanks. (sorry for my english).


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:

  -- This table takes the place of both SEND and BUY
  create table activity(
     id          serial primary key,
     product_id  integer,     --references....
     value       money
  );

  create table financial(
    id          serial primary key,
    cred_deb    smallint,
    value       money,
    activity_id integer references activity
  );

  create table output(
    id            serial primary key,
    client        integer,                 --references clientes,
    fiscal_number varchar(30),
    print_date    date,
    activity_id   integer  references activity
  );

  create table input(
    id           serial     primary key,
    supplier     integer,                       -- references suppliers,
    employee     varchar(30),
    activity_id  integer    references activity
  );

And then you do the following:

  create view buy
  as
  select
      a.id,
      b.id  as "input_id",
      a.product_id,
      a.value
  from
        activity a
  join  input    b on b.activity_id = a.id;


The SELL view is left as an exercise for the reader.

--
Daryl Richter
Platform Author & Director of Technology

((         Brandywine Asset Management          )
 ( "Expanding the Science of Global Investing"  )
 (          http://www.brandywine.com           ))


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

              http://archives.postgresql.org

Reply via email to