Thread: references (foreign keys) and selection lists

references (foreign keys) and selection lists

From
Toshio Kuratomi
Date:
Hi,
In my database I have several references between tables.
When webifying an insert form it seemed to me that these
would best be represented as a selection list.

Currently I'm using this:

SQL: select t.tgargs from pg_class c, pg_trigger
     where t.tgrelid = c.oid and c.relname='mytable';
  returns values like this:
  "<unnamed>\000mytable\000myothertable\000UNSPECIFIED\000type\000category\000"
PHP: record = split on '\000';
        when record[1] matches mytable:
     [If it doesn't match mytable, then this table is being referenced as
     opposed to referencing]
SQL: select record[5] from record[2];
PHP: construct selection list from the returned list

Question:  Is \000 an official separator between targs fields or is
000 part of a number that may change for some reason?

Also -- is this the best way to solve my problem?  It seems a little
inelegant to perform the middle split and match in the calling script, but I
can't figure out how to do it in SQL (tgargs is type bytea which doesn't
respond to regex operators.... What is a bytea anyhow?)

Last question -- Is there any documentation of the system tables (pg_*)?
I've found several useful fields in several tables, but I'm far from
understanding most of what's in there.

Thanks,
Toshio
--
badger  \ "I sometimes wonder: where is it all going?
@prtr-13 \  Which makes me stop to wonder: what is it?"
.ucsc.edu \~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
                                           GA->ME 1999