У меня есть проект, над которым я работаю, где я имею дело с ЧАСТЯМИ и ЗАКАЗАМИ.Каждый ЗАКАЗ может содержать много ЧАСТЕЙ, и каждая ЧАСТЬ может находиться в более чем одном ЗАКАЗЕ в течение своей жизни (хотя не более чем в одном АКТИВНОМ ПОРЯДКЕ за один раз).Мои таблицы в настоящее время выглядят следующим образом:
PARTS_TABLE
PART_NUMBER varchar2(20)
ASSIGNED_ORDER_NUMBER number(5)
ASSIGNED_ORDER_STATUS varchar2(20)
ORDER_TABLE
ORDER_NUMBER number (5)
ORDER_STATUS varchar2(20)
ORDER_PARTS_LIST varchar2(4000) //Comma delimited list generated by shuttle item.
Эта текущая настройка работает для нас (с помощью этого предыдущего вопроса: Предыдущий вопрос ), но требует дублирования большого количества данных.в обеих таблицах, и это на самом деле не допускает, чтобы ЧАСТЬ находилась в нескольких ЗАКАЗАХ в течение своей жизни.
Я хотел бы создать таблицу перекрестных ссылок между этими двумя таблицами:
ORDER_PARTS_TABLE
ORDER_NUMBER number(5) (pk1)
PART_NUMBER varchar2(20) (pk2)
ORDER_STATUS varchar2(20)
Где PART_NUMBER и ORDER_NUMBER создают объединенный первичный ключ.
Моя основная проблема - создание и редактирование строк в ORDER_PARTS_TABLE на основе значения элемента челнока.Я могу эффективно редактировать / обновлять мои текущие настройки, но в моих текущих настройках я не пытаюсь создавать строки, я просто ссылаюсь на строки в PARTS_TABLE.Когда человек, используя элемент челнока в форме в APEX, добавляет PARTS к ORDER, в ORDER_PARTS_TABLE должны быть созданы новые строки, т.е.строка, относящаяся к этой взаимосвязи, должна быть либо удалена из ORDER_PARTS_TABLE, либо иметь для ORDER_STATUS значение «REMOVED»
ORDER_TABLE
ORDER_NUMBER ORDER_PARTS_LIST ORDER_STATUS
12345 675:871:902 ACTIVE
either...
ORDER_PARTS_TABLE
ORDER_NUMBER PART_NUMBER ORDER_STATUS
12345 675 ACTIVE
12345 342 REMOVED
12345 871 ACTIVE
12345 902 ACTIVE
or...
ORDER_PARTS_TABLE
ORDER_NUMBER PART_NUMBER ORDER_STATUS
12345 675 ACTIVE
12345 871 ACTIVE
12345 902 ACTIVE
Имеет ли что-нибудь из этого смысл?Мое текущее решение просто использует триггеры, которыми я был прилично доволен, но дайте мне знать, как лучше всего подойти к этой новой проблеме.Спасибо!
РЕДАКТИРОВАТЬ: Я продолжал копать и нашел что-то, что звучит достаточно многообещающе, если его можно адаптировать.Кто-нибудь здесь имел опыт работы с REGEXP_SUBSTR? LINK LINK