powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / А зачем такая обектная ориентированность нужна?
8 сообщений из 8, страница 1 из 1
А зачем такая обектная ориентированность нужна?
    #33169451
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как в постгрисе. Наследование таблиц.
...
Рейтинг: 0 / 0
А зачем такая обектная ориентированность нужна?
    #33169583
_Vlado
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подначить на лай фанатов ООП.
...
Рейтинг: 0 / 0
А зачем такая обектная ориентированность нужна?
    #33275612
Foxi-Voxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, фиг с ними, с фанатами.

Лучше рассмотреть возможность использования.

Во многих случаях эта фича была бы полезной. Я имею в виду структуры данных.

Вот, вопрос в другом: наследование поведения. Пусть в таблице - родителе будет триггер Tr1, рабатывающий на, скажем, изменение записи. Можно ли его переопределить в таблице - потомке?
Есть ли, что-то вроде "Inherited" в теле триггера? (Т.е. возможность обратиться к базовому методу триггеру)? Как вообще (и в каком порядке) будет организовано выполнение триггеров таблицы - родителя и потомка?
Есть ли возможность в базовом триггере определить контекст, в котором он вызван? (То ли данные изменены просто в базовой таблиц, то ли в потомке) Есть ли возможность узнать список изменяемых полей?

По поводу наследования констреинтов также было бы интересно узанать.

Было бы классно, если бы кто-нибудь рассказал про такие безобразия.

Поделитесь знаниями, ... ГУРУ!
...
Рейтинг: 0 / 0
А зачем такая обектная ориентированность нужна?
    #33275701
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
великий RTFM и метод научного тыка вам в помощь!!!
...
Рейтинг: 0 / 0
А зачем такая обектная ориентированность нужна?
    #33275705
Foxi-Voxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vfabrвеликий RTFM и метод научного тыка вам в помощь!!!

Это да, это нам завсегда не жалко Сам такой.
...
Рейтинг: 0 / 0
А зачем такая обектная ориентированность нужна?
    #33275983
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не я серьезно
если интересно провинтилируйте этот вопрос и расскажите о результатах :-)

ЗЫ
гуру не рождаются ими становятся
...
Рейтинг: 0 / 0
А зачем такая обектная ориентированность нужна?
    #33276127
domanix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле неаследование в PG это некая фикция но порой полезная...
т.е. выражения
create table a( id integer) ;
create table b (name text) inherits (a);
select * from a;
select * from a only;
select * from b;
физически эквивалентны cледующим:
create table a( id integer) ;
create table b (id integer, name text);
select id from a union all select * from b;
select * from a ;
select * from b;
т.е. от механизма наследования мы получаем возможность не повторять струткуру дочерних таблиц при описании , а также прозрачный метод добавления полей ( добавленное поле предка- автоматически добавится и у детей)..
Ну и плюс возможность не писать сложных запросов с юнионами...
Вот собственно и вся прелесть...
Т.е. всем кто ждет от наследования чегото большего - тот ошибается...
соотвественно ни индексы - ни триггеры не наследуются...
ибо вставка в таблицу B - ни коим образом не затрагивает таблицу A
b наоборот... но ведь вам ни кто не запрещает руками определять индексы и переназначать триггерные функции например с таблицы A на таблицу B?
Просто вы будете делать это сами ...
Вот... Еще одно применение наследования таблиц-это возможность в применением tablespace - разнести одну логическую таблицу на два разных диска..
например актуальные данные деражать в таблице A -старые данные держать в таблице B - а обращаться к данным как к таблице C

create table A (ID integer,NAME text ) tablespace Disk1;
create table B () inherits(A) tablespace Disk2;
create table C () inherits(B) ;

select * from C -получить все данные и актуальные и архивные...
select * from A - только актуальные данные
select * from B - только архивные...

согласитесь - это удобнее чем писать сложные запросы с обьединением нескольких таблиц...
Ну и естeственно констроль целостности типа форейн ключей тут не буцдет работать - т.е. придется контролировать все руками...
Вот примерно сумбурно я рассказал что такое механизм наследования в PG..
Во всяком случае я его так понимаю....
...
Рейтинг: 0 / 0
А зачем такая обектная ориентированность нужна?
    #33276219
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наследуются констрайнты некоего вида. помнится типа чеков. Обычные триггеры не наследуются. Можно перекрывать сколько угодно. На вопрос о наследование ФК и т.п. кто-то давал указания на конкретные контрибы. Поскольку мне не понадобилось (уже все было сконструировано), то не проверял. Но посёчить по форуму имеет смысл.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / А зачем такая обектная ориентированность нужна?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]