powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
24 сообщений из 24, страница 1 из 1
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415657
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Индексы, ограничения и триггеры таблицы принадлежат таблице, как и поля. В этом легко убедиться, дропнув таблицу :)
Для индексов, ограничений и триггеров таблиц зачем-то существует требование иметь глобально-уникальное имя в базе. Для названия полей такого ограничения нет.

Таким образом, создавая например триггер, постоянно приходится приписывать имя таблицы в качестве префикса. И то же самое приходится проделывать для ограничений и индексов. Слава Богу что этого не нужно делать для полей :)

Я бы к примеру предпочёл писать это:
Код: sql
1.
2.
create trigger AI for SomeTable active after insert position 0...
drop trigger SomeTable.AI;

вместо вот этого:
Код: sql
1.
2.
create trigger SomeTable_AI for SomeTable active after insert position 0...
drop trigger SomeTable_AI;
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415691
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

триггеры могут быть не только для таблицы, ограничения тоже (они ещё для доменов).
Триггеры "хранятся" в системной таблице RDB$TRIGGERS соответственно на их имя RDB$TRIGGER_NAME наложен уникальный индекс. Они бывают разных типов уровня БД (коннект/дисконнект, старт/коммит/роллбек), на таблицу (в тройке ещё DDL триггеры). И что теперь на каждый из типов триггеров по отдельной таблице городить?
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415703
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,
Это ведь детали реализации. Я сейчас с более концептуального уровня говорю.
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415725
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

концептуально надо смотреть что говориться в стандарте. А там, ЕМНИП, триггеры это отдельный объект БД. Да и вроде в других СУБД так. А то что триггеры удаляются вместе таблицей так это правильно, иначе триггер "инвалидный" будет, а в FB инвалидные объекты не допускаются (Это тебе не Оракл )
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415734
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисконцептуально надо смотреть что говориться в стандарте.А чувство здравого смысла что говорит? :)
Чем поля таблиц отличаются в этом смысле от индексов таблицы, или триггеров таблицы, или табличных ограничений?
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415740
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeСимонов Денисконцептуально надо смотреть что говориться в стандарте.А чувство здравого смысла что говорит? :)
Чем поля таблиц отличаются в этом смысле от индексов таблицы, или триггеров таблицы, или табличных ограничений?
И если бы вы сейчас проектировали движок с нуля, то как бы вы себе объяснили своё желание сделать имена этих объектов глобально-уникальными? :)
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415754
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

хорошо задам вопрос так. Что делать с другими типами триггеров. Могу предположить что ты А когда появятся схемы как предполагаешь синтаксис удаления триггера будет выглядеть. И что делать чтобы не запутаться в этом случае.
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415757
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, NickDee!
You wrote on 3 октября 2013 г. 16:09:38:

NickDee> А чувство здравого смысла что говорит? :)
займи, но выпей!

зы: хочешь изменить вселенную, начни прямо сейчас.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415758
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

блин часть предложения стёрлась.
Могу предположить что ты скажешь что делать DROP без точки в имени. ....
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415773
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисNickDee,

хорошо задам вопрос так. Что делать с другими типами триггеров. Могу предположить что ты А когда появятся схемы как предполагаешь синтаксис удаления триггера будет выглядеть. И что делать чтобы не запутаться в этом случае.
Делать нужно исходя из границ видимости объекта.
С глобального уровня по имени должны быть доступны только триггеры уровня connect и transaction.
А остальные должны быть доступны вот так: ИмяТаблицы.ИмяТриггера
Что за проблемы со схемами?
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415781
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeююю
И если бы вы сейчас проектировали движок с нуля, то как бы вы себе объяснили своё желание сделать имена этих объектов глобально-уникальными? :)
"Если бы да кабы, да во рту выросли ... грибы!" :) Движок уже есть и бессмысленно рассуждать на эту тему с подходом "проектировать все с нуля". Куда ты собираешься девать совместимость со старым кодом например?

PS: Вот будешь писать свой сервер - сделаешь все как надо! :)
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415789
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtPS: Вот будешь писать свой сервер - сделаешь все как надо! :)
Считаете что этот сервер уже неисправим? :)
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415825
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee...
Считаете что этот сервер уже неисправим? :)
Считаешь, что мои слова по совместимость с существующим кодом можно просто проигнорировать?
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415828
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeДелать нужно исходя из границ видимости объекта.
С глобального уровня по имени должны быть доступны только триггеры уровня connect и transaction.
А остальные должны быть доступны вот так: ИмяТаблицы.ИмяТриггера
Что за проблемы со схемами?

А вместе со схемой вот так ИмяСхемы.ИмяТаблицы.ИмяТриггера. Разве не гемморой?
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415866
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtКуда ты собираешься девать совместимость со старым кодом например?
со старым кодом никуда деваться не надо, т.к. там имена триггеров и так уникальны в пределах базы. Другое дело - определенный геморрой при переносе старой базе на "новый" движок, в котором имена объектов были бы уникальны в пределах объекта, и тотальная невозможность вернуться на версию назад.
С одной стороны, мысль NickDee вроде здравая, типа, "лень - двигатель прогресса", но что-то есть в ней нехорошее.
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415898
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисА вместе со схемой вот так ИмяСхемы.ИмяТаблицы.ИмяТриггера. Разве не гемморой?
А как предполагается работать с "type of ИмяСхемы.ИмяТаблицы.ИмяПоля" при определении типов полей? :)
В пространстве имён схемы можно обращаться к ИмяТаблицы.ИмяТриггера. В пространстве имён таблицы: просто "ИмяТриггера".
А глобально - "ИмяСхемы.ИмяТаблицы.ИмяТриггера".
Вы же ведь не рассматриваете вариант сделать имена триггеров таблиц, или индексов в схемах глобально-уникальными? :) Думаю нет :)
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415941
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtNickDee...
Считаете что этот сервер уже неисправим? :)
Считаешь, что мои слова по совместимость с существующим кодом можно просто проигнорировать?
Считаете что нужно тянуть концептуальные косяки от версии к версии во имя совместимости? :) Я бы предпочёл стройный, красивый внутри, и развивающийся продукт, с большими степенями свободы по использованию :)
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415968
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeСчитаете что нужно тянуть концептуальные косяки от версии к версии во имя совместимости? :) Я бы предпочёл стройный, красивый внутри, и развивающийся продукт, с большими степенями свободы по использованию :)
И тебе совершенно наплевать, что перестанет работать например IBExpert, IB Data pump, DBComparer, IBAnalist да и вообще ВСЕ сторонние программы, которыми разработчики пользуются каждый день??? Знаешь, мне с тобой точно не по пути, можешь идти своей дорогой куда шел :) Может немного грубо, но совершенно точно отражает смысл. Обратная совместимость - это чуть ли не краеугольный камень в разработке чего угодно.
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415973
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, NickDee!
You wrote on 3 октября 2013 г. 18:01:03:

NickDeeЯ бы предпочёл стройный, красивый внутри, и развивающийся
продукт, с большими степенями свободы по использованию :) ну и
ладно.
всем вольно.
разойдись.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415977
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtNickDee...
Считаете что этот сервер уже неисправим? :)
Считаешь, что мои слова по совместимость с существующим кодом можно просто проигнорировать?
Никаких проблем совместимости в прикладном коде не видно.
Если только откат на старую версию сервера делать, но этак с чем угодно нарыть можно.
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38415981
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Dzirt]NickDeeИ тебе совершенно наплевать, что перестанет работать например IBExpert, IB Data pump, DBComparer, IBAnalist...
Они и так с новыми версиями серверов не работают.
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38416012
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtNickDeeСчитаете что нужно тянуть концептуальные косяки от версии к версии во имя совместимости? :) Я бы предпочёл стройный, красивый внутри, и развивающийся продукт, с большими степенями свободы по использованию :)
И тебе совершенно наплевать, что перестанет работать например IBExpert, IB Data pump, DBComparer, IBAnalist да и вообще ВСЕ сторонние программы, которыми разработчики пользуются каждый день??? Знаешь, мне с тобой точно не по пути, можешь идти своей дорогой куда шел :) Может немного грубо, но совершенно точно отражает смысл. Обратная совместимость - это чуть ли не краеугольный камень в разработке чего угодно.
Их придётся допиливать под тройку, в любом случае. И такое допиливание происходило каждый раз, от версии к версии, по мере введения новых фич. Вот сечас в тройке тип Boolean появился. Прошлогодний IBExpert его понимает? А DBComparer с IB Data pump?
Так что я не вижу тут каких-то проблем, которые не возникали бы раньше :)

Чего конкретно вы боитесь в рассматриваемом нами случае? Покажите на конкретном примере.
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38416017
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД...
Они и так с новыми версиями серверов не работают.
Ну да, конечно! Не работают... Не понимают тип Boolean? Я не буду его временно использовать, сколько лет без него жили - и ничего. (гипотетически) Не понимают триггеров? А вот это уже совсем не так хорошо. Ты правда не понимаешь разницы или просто решил поприкалываться?
...
Рейтинг: 0 / 0
глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
    #38416026
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DzirtчччД...
Они и так с новыми версиями серверов не работают.
Ну да, конечно! Не работают...
Не работают. Так всегда было.

А Delphi 7 не понимает дженериков. Вот такая диалектика.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / глобальная уникальность имён объектов таблицы (индексов, триггеров, ограничений)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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