powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обнуление генератора
12 сообщений из 37, страница 2 из 2
Обнуление генератора
    #38524698
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoя автоинкрементами вообще не пользовался (за редким
исключением) и всегда считал их злом.
Что, SELECT MAX(id)+1 рулит?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524714
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

почему? Может у него натуральные ключи используются (хотя в MS SQL с триггерами на update будет тяжело) или guid
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524747
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko> кстати обнуляю я их не в программе
Mikhail Tchervonenko> а в скрипте который генерирует таблицы.

В скрипте, который генерирует DDL-ы таблиц или в
DDL-скрипте их создания? Ибо если второе, то как раз
Create/Set Generator - правильное решение, в отличие
от выбранного трюка.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524762
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanMikhail Tchervonenkoкстати обнуляю я их не в программе а в скрипте который генерирует таблицы.
Почему этот-же скрипт не (пере)создает генераторы для создаваемых таблиц?
тут согласно внутренней политике все изменения в базе ведутся через скрипты. Если в базе создаётся блок по смыслу связанных таблиц то до первого релиза программы работающей с этим блоком удобно иметь скрипт который создаёт таблицы (если они не созданы ещё), копирует в них какие то данные и изменяет структуру таблиц в хронологическом порядке. При этом желательно если в процессе тестирования какие то данные добавились в таблицы не удалять их без особой нужды (это к вопросу почему просто не пересоздать генераторы). После выхода первого релиза, под каждый новый релиз, создаётся свой скрипт который вносит уже только изменения в структуру таблиц и если необходимо добавляет новые. Это очень удобно если разработку надо вести и вне пределов фирмы, напр, дома на ноуте. Зачекал скрипт из svn, накатил и получил последний вариант структуры базы. Безусловно иногда и дамп базы накатить приходится но это времязатратно и не всегда необходимо.

А индексы привык использовать либо из комбинации полей, и только если нужна порядковая нумерация автоинкремент. В некоторых случаях удобны GUID подобные индексы, особенно если нужно уникальность поля не только в рамках таблицы но и в рамбках базы или многих баз. К такому GUID удобно привязывать все (логгирование, блокировки итп вещи если они реализовываются не родными средствами сервера баз данных). Автоинкремент плох, с моей точки зрения, дополнительными проблеммами при синхронизации или слиянии данных. Думаю эти проблеммы и без меня всем хорошо известны. Вот собственно и все.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524789
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoАвтоинкремент плох, с моей точки зрения, дополнительными проблеммами при синхронизации или слиянии данных.

у ERP-шников есть правило: первичный ключ (ID-записи) не должен нести НИКАКОЙ информации об объекте в базе.
еще раз: НИКАКОЙ! это просто идентификатор записи.

если нужно уникальное значение, одинаковое для всех баз (например, штрих-код товара), то заводится дополнительный домен в таблице.

а проблемы синхронизации решаются путем дополнительной таблицы, в которой есть домены:
Код: plaintext
1.
2.
3.
4.
5.
ИмяТаблицы
ID-записи
ИдентификаторВнешнейБазы
ИмяТаблицы
ID-записиВоВнейшнейБазе
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524792
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

IBExpert прекрасно умеет генерировать скрипт обновления при сравнении как с контрольной БД, так и со скриптом. Так что напрасно вы себя так мучаете.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524826
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисMikhail Tchervonenko,

IBExpert прекрасно умеет генерировать скрипт обновления при сравнении как с контрольной БД, так и со скриптом. Так что напрасно вы себя так мучаете.

Тут это отчасти с документированием связано итп Да и не я правила устанавливаю (пока).
Достоинство скрипта в том что он может и с нуля все сделать и интеллектуально по задуманной логике, на мой испорченный взгляд удобно. Конечно не так как это в Visual Studio реализовано (см. проект базы), но хоть что то. Если бы у FireBird было что то что позволяет напрямую хранить структуру базы и скрипты в SVN как это реализовано в продуктах для MSSQL то было бы намного удобнее.

Вообще надо идею подкинуть разработчикам IBExpert сделать интеграцию с svn и git. Было бы удобно.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524835
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PEAKTOPMikhail TchervonenkoАвтоинкремент плох, с моей точки зрения, дополнительными проблеммами при синхронизации или слиянии данных.

у ERP-шников есть правило: первичный ключ (ID-записи) не должен нести НИКАКОЙ информации об объекте в базе.
еще раз: НИКАКОЙ! это просто идентификатор записи.

если нужно уникальное значение, одинаковое для всех баз (например, штрих-код товара), то заводится дополнительный домен в таблице.

а проблемы синхронизации решаются путем дополнительной таблицы, в которой есть домены:
Код: plaintext
1.
2.
3.
4.
5.
ИмяТаблицы
ID-записи
ИдентификаторВнешнейБазы
ИмяТаблицы
ID-записиВоВнейшнейБазе

Да, примерно так на MsSQL и делали всегда. Единственное в качестве первичного ключа всегда пользовал GUID что позволяло обойтись без вышеописанной таблицы.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524863
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko Если бы у FireBird было что то что позволяет напрямую хранить структуру базы и скрипты в SVN
isql -x и закидывай в SVN.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524874
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисMikhail Tchervonenko,

IBExpert прекрасно умеет генерировать скрипт обновления при сравнении как с контрольной БД, так и со скриптом. Так что напрасно вы себя так мучаете.
Не назвал бы я такой подход мучением. Вот каждый раз базы сравнивать на предмет, не пропустил ли где-то что-то - вот это мучение. По своему опыту сужу :)

P.S. Особенно классно, если две базы различаются одной процедурой, которая в свою очередь отличается только одним символом (условно "+" на "-" поменяли), а експерт честно создает скрипт, который помимо отличающейся процедуры на много строк включает еще и перекомпиляцию всех зависимостей.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38524893
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvMikhail Tchervonenko Если бы у FireBird было что то что позволяет напрямую хранить структуру базы и скрипты в SVN
isql -x и закидывай в SVN.
Такое тоже используем.
Но только что б потом сравнить что изменили.
...
Рейтинг: 0 / 0
Обнуление генератора
    #38525001
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkokdv
isql -x и закидывай в SVN.
Такое тоже используем.
Но только что б потом сравнить что изменили.
Ваш tortoisesvn не умеет показывать diff-ы?!?
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обнуление генератора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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