powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Прошу подсказать варианты решения задачки
9 сообщений из 9, страница 1 из 1
Прошу подсказать варианты решения задачки
    #40080804
Титов Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Есть множество таблиц хранения анкетных данных (по одной на каждый тип анкеты). Данные приходят из мобильных устройств.
Также есть такое же множество таблиц для хранения первоначальных анкетных данных. Во второй группе таблиц правка данных по логике системы не подразумевается.

Приведу пример: Пришли данные в таблицу ANK_DATA1_TBL, в триггере BEFORE INSERT данные скопировались в таблицу ANK_DATA1_ORG_TBL (состав полей в парных таблицах всегда одинаков). В итоге, когда в процессе работы осуществляется правка данных в первой таблице, всегда можно посмотреть, какие данные пришли изначально, это видно во второй таблице.

Но сейчас я пишу для каждой таблицы отдельную процедуру вставки данных во вторую таблицу. В процедуру передается параметр типа ROWTYPE.

Задачка такая: сделать универсальную процедуру наполнения парных таблиц для хранения исходных данных, чтобы не делать такую процедуру для каждой. Я подумал насчет динамического SQL, но не получается из-за всегда разного ROWTYPE. Есть ли еще какие-то варианты, как думаете?
...
Рейтинг: 0 / 0
Прошу подсказать варианты решения задачки
    #40080809
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задачка такая: сделать универсальную процедуру наполнения парных таблиц для хранения исходных данных, чтобы не делать такую процедуру для каждой.

Задачка хреновая из-за хреновой архитектуры. Нужно нормализовать данные.

Я подумал насчет динамического SQL, но не получается из-за всегда разного ROWTYPE.

Можно сделать генерацию триггеров на основе словаря (*_tab_columns), но опять - хреново из-за см. п. 1.
...
Рейтинг: 0 / 0
Прошу подсказать варианты решения задачки
    #40080814
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
Задачка такая: сделать универсальную процедуру наполнения парных таблиц для хранения исходных данных, чтобы не делать такую процедуру для каждой.


Задачка хреновая из-за хреновой архитектуры. Нужно нормализовать данные.

А конкретнее?
Что есть "нормализация" в этом случае?
Какую избыточность она должна устранить?
...
Рейтинг: 0 / 0
Прошу подсказать варианты решения задачки
    #40080816
Титов Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus
dmdmdm
пропущено...


Задачка хреновая из-за хреновой архитектуры. Нужно нормализовать данные.

А конкретнее?
Что есть "нормализация" в этом случае?
Какую избыточность она должна устранить?


В таблицах нет избыточности для нормализации. Обычный набор данных, значения полей которого по сути не делимы, заполняются в мобильном приложении. Типы данных либо VARCHAR2 (для комментариев), либо NUMBER.

Альтернативным вариантом могло бы быть НЕ использование второй таблицы, а вставка дублирующей записи в первую же с указанием в качестве PARENT_ID идентификатора первоначальной записи. В итоге на каждую запись в таблице была бы ее неизменяемая копия.

Но процедуру дублирования записи тоже надо как-то универсальной сделать.
...
Рейтинг: 0 / 0
Прошу подсказать варианты решения задачки
    #40080823
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Титов Артем,
Версионность данных не рассматриваете?

При правке запись не удаляется,а копируется и увеличивается номер версии
Тогда видна вся история правок
...
Рейтинг: 0 / 0
Прошу подсказать варианты решения задачки
    #40080839
Титов Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin
Титов Артем,
Версионность данных не рассматриваете?

При правке запись не удаляется,а копируется и увеличивается номер версии
Тогда видна вся история правок


Такой подход для данного бизнеса избыточен.
...
Рейтинг: 0 / 0
Прошу подсказать варианты решения задачки
    #40080841
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что есть "нормализация" в этом случае?

Много таблиц, и много журналов.

В любых учетных системах множество разных документов, но, как правило, делают всего одну-две таблицы, и один-два журнала.
Соответственно, как триггеры написали, так они годами и работают, а не "новый документ - давайте новый триггер напишем".
...
Рейтинг: 0 / 0
Прошу подсказать варианты решения задачки
    #40080843
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
В любых учетных системах множество разных документов, но, как правило, делают всего одну-две таблицы, и один-два журнала.
Уверен? - Назови процент.
...
Рейтинг: 0 / 0
Прошу подсказать варианты решения задачки
    #40080844
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
генерить триггер програмно

ps
для динамического SQL можно передавать имя таблицы и ровид записи

.....
stax
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Прошу подсказать варианты решения задачки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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