| From: | "Sergey Karin" <nil5-ksa(at)yandex(dot)ru> |
|---|---|
| To: | "'pgsql-ru-general'" <pgsql-ru-general(at)postgresql(dot)org> |
| Subject: | metadata about table columns |
| Date: | 2005-04-20 12:48:28 |
| Message-ID: | S6936289AbVDTMsx/20050420124853Z+53690@gnome09.net.rol.ru |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-ru-general |
Всем привет.
Продолжение темы ГИС, PostGIS и PostgreSQL :)
атрибуты объектов (т.е. колонки в реляционной таблице) могут иметь только
названия согласно требованиям именования полей таблиц. Это есть ограничение,
т.к. я не могу атрибуту объекта задать удобоваримое название, например,
по-русски. А очень хоцца.
Выходов я вижу три.
1) создать таблицу с метаданными, в которой будут хранится удобоваримые
названия, эти самые неудобоваримые (названия колонок), а также название
реляционной таблицы, в которой эта самая колонка (атрибут) созданы. Т.е.
никак не использовать информацию из системного каталога. (pg_class и
pg_attribute). Соответственно все операции будут выполняться через
специально заданный инструментарий в виде функций и/или триггеров.
2) В таблице с метаданными (как в п.1) использовать внешний ключ на таблицу
pg_attribute. Т.е. хранить только удобоваримое название и ссылку на строку в
таблице pg_attribute, которая описывает колонку.
3) Не создавать никаких своих таблиц с метаданными, а добавить в системный
каталог (alter table pg_attribute) новое поле, которое будет описывать
удобоваримое название.
Мне наиболее симпатичен первый вариант. Наименее - третий.
Прав ли я, и возможны ли другие решения?
Сергей Карин
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Sergey Suleymanov | 2005-04-20 13:50:59 | Re: metadata about table columns |
| Previous Message | Oleg Bartunov | 2005-04-20 11:44:58 | Re: pgsphere |