Oracle: вставлять / редактировать / удалять данные в сводном запросе? - PullRequest
0 голосов
/ 25 декабря 2018

У меня есть приложение, привязанное к базе данных.В базе данных есть таблица Objects:

Table1: Objects (ID, ObjectName)

Конечный пользователь должен иметь возможность создавать различные объекты с разными атрибутами (заранее я не знаю,номер и имя различных атрибутов, но все они одного типа. Допустим, varchar2).

На стороне базы данных это организовано в отдельной таблице следующим образом:

Table2: ObjectAttributes (ID, ObjectID, AttributeName, AttributeValue)

(Поле ObjectID является внешним ключом, связанным с таблицей Objects)

На стороне приложения я представляю данные, как будто объектвсе его атрибуты находятся в одной таблице с сводным представлением:

Представление: ObjectsAndAttribute (ID, ObjectName, AttributeName1, AttributeName2, ...)

Это представление создается с использованием сводного запроса,Работает довольно хорошо при отображении данных.Но когда пользователь хочет создать новый объект, отредактировать или удалить объект в элементе управления сеткой, например, это кошмар.

  • В случае редактирования, я должен вручную редактировать две таблицы ...
  • В случае вставки, я должен сначала вставить данные в таблицу Objects, затем ObjectAttributes (потому чтоограничения внешнего ключа)
  • В случае удаления мне нужно сначала удалить данные в ObjectsAttributes, затем Objects (из-за ограничения внешнего ключа)

Я сделал все этоно код очень длинный и не очень надежный.

Мой вопрос: кто-нибудь знает, возможно ли вставить / отредактировать / удалить данные в сводном запросе ObjectsAndAttribute и oracle будет обрабатывать соответствующие операции в разных таблицах?

Или кто-нибудьзнаете о любой другой реализации, пожалуйста?

Спасибо.Cheers,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...