Используйте родственные связи
PostgreSQL, будучи, в общем-то реляционной СУБД, поддерживает и некоторые
«объектные» свойства. Например, наследование таблиц. То есть вы можете на базе
существующей таблицы (которая в дальнейшем так и будет называться – базовой)
создать производную (или даже несколько), дополнив её новыми полями:
CREATE TABLE mytable (id serial,
ware varchar, price numeric(10,2));
CREATE TABLE withdesc (description
text) INHERITS mytable;
Теперь в таблице withdesc, помимо собственного
поля description, будут доступны и поля родительской таблицы mytable – id, ware
и price. Причём данные, записанные, скажем, в поле ware таблицы withdesc, будут
видны и в mytable (поскольку физически они там и хранятся). Естественно, и наоборот,
изменения mytable будут находить отражение и в withdesc.
Благодаря этому можно, например, вести одну
таблицу с паспортными данными по всем вашим клиентам, а для хранения
технической информации (различающейся, скажем, для пользователей ADSL и коммутируемого
доступа) использовать две производные таблицы на её базе.