Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Версионность справочников и реестров / 21 сообщений из 21, страница 1 из 1
27.10.2014, 16:46
    #38788429
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
Не сочтите за рекламу, просто делюсь своим опытом.
Версионность справочников и реестров
авторВ статье приведен новый легкий алгоритм для организации версионности справочников. Возможно, это все было придумано до меня, но в открытых источниках мне не удалось найти описание этого подхода.
Описанный алгоритм используется нами на реальном проекте.
...
Рейтинг: 0 / 0
27.10.2014, 21:04
    #38788641
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
> Не сочтите за рекламу, просто делюсь своим опытом.

Просто треп - 11740. Это и есть реальная оценка вашего опыта. Юноша, курите буквари, не нужно писать "статей".

> Описанный алгоритм используется нами на реальном проекте.

Мне жаль вашего заказчика.
...
Рейтинг: 0 / 0
28.10.2014, 23:33
    #38789970
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
guest_20040621,

Большое спасибо за ваш объективный анализ статьи, я обязательно поработаю над недостатками алгоритмов, на которые вы указали
...
Рейтинг: 0 / 0
29.10.2014, 03:06
    #38790060
stanilar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
Не хватает описание технической задачи, которая была решена, или технического ТЗ, которое Вы должны были выдать себе перед началом работы.
...
Рейтинг: 0 / 0
29.10.2014, 08:28
    #38790132
scf
scf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
К чему срач?
Нормальное, добротное решение, пусть и не уникальное. И требования в статье есть.

Проблемы могут возникнуть разве что при появлении пары справочников, которые ссылаются на третий.
Если нет и не будет требования читать справочники по версиям индивидуально, я бы взял общий счетчик версий по всем справочникам. В оракле - sequence, в других СУБД тоже должно быть что-то похожее, на крайний случай можно сделать отдельную табличку с одной строкой.
...
Рейтинг: 0 / 0
29.10.2014, 09:15
    #38790179
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
А зачем это? Обычно изменяются лишь некоторые параметры, причем они зависят зачастую не только от справочника
Шаблон: Периодические сведения
...
Рейтинг: 0 / 0
29.10.2014, 10:08
    #38790272
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
scf,

если есть несколько связанных таблиц с данными, то для них всех ведется одна таблица с номерами версий, это позволяет корректно менять один или несколько справочников при переходе на новую версию.
Если помечаете запись как удаленную в одной из версий, необходимо проверять кто на нее ссылался, база за вас сама этого не сделает.
...
Рейтинг: 0 / 0
29.10.2014, 10:24
    #38790312
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
NafА зачем это? Обычно изменяются лишь некоторые параметры, причем они зависят зачастую не только от справочника
Шаблон: Периодические сведения
В нашем случае изменялись сразу несколько справочников, причем за несколько транзакций:
- ночью из внешней системы подкачивается справочник на 10 тысяч записей (XML), он автоматом сравнивается с имеющимися данными, если есть изменения - обновляется одна из таблиц в базе;
- утром оператор жмет кнопку "обновить тарифы", и в другом справочнике из миллиона значений меняется пара тысяч записей;
- в течении недели тетечка проверяет, все ли верно обновилось, иногда вносят правки ручками в отдельные записи;
- потом это все безобразие одобряется третьим лицом и справочники можно распространять.
И на распространение ни в коем случае не должны попадать промежуточные правки.
В этих условиях Периодические сведения (оно же Log trigger) не подходят.
...
Рейтинг: 0 / 0
29.10.2014, 10:38
    #38790334
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
> Большое спасибо

Большое пожалуйста. Если бы вы хотя бы иногда читали форум "проектирование", а не "треп", то знали бы о справочниках чуть больше и не строили бы кривых велосипедов.

> за ваш объективный анализ

Мой объективный анализ вы вряд ли сможете оплатить. Хотите получить ответ на конкретный вопрос - пожалуйста. Больше читайте, вам рано писать.
...
Рейтинг: 0 / 0
29.10.2014, 10:43
    #38790341
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
ZashibisВ этих условиях Периодические сведения (оно же Log trigger) не подходят.
Почему не подходят?
...
Рейтинг: 0 / 0
29.10.2014, 11:08
    #38790373
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
Naf,

потому что "Log trigger" в качестве "новой версии" использует текущее время (на момент редактирования).
Это хорошо для хранения истории изменений в одной таблице. Но когда изменения вносятся сразу в несколько таблиц, то хочется чтобы версия "тикнула" один раз для всех изменений. Если у вас все таблицы изменяются за одну транзакцию, то "Log trigger" все еще подходит, можно на начала транзакции взять текущее время и везде его проставить.
У нас транзакций было много, значит это время надо где-то отдельно запоминать.
А еще хотелось чтобы изменения для клиентов вступали в силу не сразу, а через неделю, значит прописывать надо не время редактирования, а особое время действия.
Вот и появилась таблица с номерами версий и метаданными для каждой версии (статусы, каменты и т.д.), для удобства сами номера версий заменили на целые числа вместо времени.
Это очень похоже на шаблон "Log trigger", но уже не совсем он.
...
Рейтинг: 0 / 0
29.10.2014, 16:20
    #38790944
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
Ну почему на текущий момент?
ТоварТип ценыЦенаВалюта цены Начало периода Конец периодаБашмаки Опт 10 USD 01.01.2014 31.10.2014Башмаки Опт 400 RUR 01.11.2014 31.12.2014Башмаки Опт 500 RUR 01.01.2015 01.01.3001
Валюта Курс Начало периода Конец периодаRUR 1.0000 01.01.1998 01.01.3001USD 40.5637 28.10.2014 28.10.2014USD 44.6370 29.10.2014 29.10.2014USD 45.0000 30.10.2014 30.10.2014USD 45.5000 31.10.2014 01.01.3001
установив цены заранее, мы можем дождаться момента когда они начнут действовать и пересчитать по курсу валюты на тот момент
...
Рейтинг: 0 / 0
29.10.2014, 16:45
    #38790979
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
Naf,

а теперь представьте, что надо эти справочники выгрузить наружу, заблаговременно, диффом. Что спросит клиент? "Дай мне справочник на 01.01.2015"?
А спрашивать ли ему после этого "справочник за 01.12.2014"? Ведь вы можете добавить такую строчку в будущем.
...
Рейтинг: 0 / 0
02.11.2014, 10:59
    #38794167
пгуые123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
http://ru.it-dc.org/articles В статье приведен новый легкий алгоритм для организации версионности справочников, он похож на Log trigger, но более универсален и надежен. Возможно, это все было придумано до меня , но в открытых источниках мне не удалось найти описание этого подхода. Прочитать перед изобретением велосипедов.
http://ru.it-dc.org/projects/USDS USDS - Universal serialized data structures - универсальные сериализованные структуры данных, бинарный аналог XML. Как и текстовые форматы (XML, JSON), USDS предназначен для хранения и передачи сложных структур данных, но представляет собой более компактную форму и ориентирован на машинную обработку.Вообще, есть ASN . Экономите на спичках + изобретаете формат БД - open-source пример .
...
Рейтинг: 0 / 0
05.11.2014, 14:42
    #38796362
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
пгуые123,

давайте конкретнее, где описан подходящий алгоритм среди тех 500+ страниц? А может быть нигде?

USDS мы здесь обсуждать не будем, не профильная ветка форму.
...
Рейтинг: 0 / 0
05.11.2014, 16:33
    #38796530
Wizandr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
Zashibisпгуые123,

давайте конкретнее, где описан подходящий алгоритм среди тех 500+ страниц? А может быть нигде?

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

это у вас должно быть написано
- существующие подходы
-чем они не устраивают
-отличительные черты вашего подхода
...
Рейтинг: 0 / 0
05.11.2014, 21:32
    #38796753
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
Wizandr,

в статье это все как раз описано :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
24.08.2016, 09:31
    #39296846
Версионность справочников и реестров
Спасибо за хорошую статью.
Всё очень предельно ясно описано!

На данный момент решаем проблему, связанную с хранением версии не только справочников, но также с хранением версии их метаструктуры.
...
Рейтинг: 0 / 0
25.08.2016, 10:08
    #39297589
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
Ксения Разработчик,

мне кажется, это гиблое дело.
Лучше при смене структуры мигрировать все данные на новую схему. Даже старые версии справочников спокойно мигрируются.
Можно попытаться хранить справочники в не реляционной БД, например: одна версия справочника - один JSON-документ в MongoDB. Но это еще более гиблое дело :)
...
Рейтинг: 0 / 0
25.08.2016, 11:18
    #39297641
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
ZashibisНе сочтите за рекламу, просто делюсь своим опытом.
Версионность справочников и реестров
авторВ статье приведен новый легкий алгоритм для организации версионности справочников. Возможно, это все было придумано до меня, но в открытых источниках мне не удалось найти описание этого подхода.
Описанный алгоритм используется нами на реальном проекте.


это не статья, это какая-то писанина.

правильно сказали, Надо начинать с постановки задачи. Найди в сети например статью Тенцера о EAV, погляди, Надо писать статьи.

И я подозреваю, что тот опыт, что есть у автора этой статьи, передать никому невозможно, поскольку 0) тут нет изобретательского хода, и 1) вне контекста конкретной системы опыт неприменим.

я могу ошибаться.
...
Рейтинг: 0 / 0
25.08.2016, 11:26
    #39297653
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Версионность справочников и реестров
MasterZivZashibisНе сочтите за рекламу, просто делюсь своим опытом.
Версионность справочников и реестров
пропущено...

Описанный алгоритм используется нами на реальном проекте.


это не статья, это какая-то писанина.

правильно сказали, Надо начинать с постановки задачи. Найди в сети например статью Тенцера о EAV, погляди, Надо писать статьи.

И я подозреваю, что тот опыт, что есть у автора этой статьи, передать никому невозможно, поскольку 0) тут нет изобретательского хода, и 1) вне контекста конкретной системы опыт неприменим.

я могу ошибаться.


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


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