Я разрабатываю приложение Django, представляющее собой веб-интерфейс для некоторой базы данных Oracle с другой локальной базой данных, хранящей данные приложения, такие как разрешения Guardian.Проблема в том, что его можно изменить из разных мест, которые я не могу контролировать.
Допустим, у нас есть 3 модели: User
, Thesis
и UserThesis
.
* 1007.*
UserThesis
- таблица, определяющая отношения между
Thesis
и
User
(
User
является соавтором
Thesis
)
Сценарий:
User
удаляется как автор Thesis
путем удаления записи в таблице UserThesis
другим приложением.
User
пытается изменить Thesis
с помощью нашего приложения Django,И ему это удается, потому что Guardian и Django не знают об изменениях в UserThesis
.
Я думал о некоторых решениях:
Имея некоторыеРабота cron ищет изменения в UserThesis
, проверяя дату изменения записи.Легко проверить наличие дополнений, удаление потребует повторного просмотра всех взаимосвязей.
Изменение схемы Oracle DB для добавления таблиц Guardian DB и создания триггеров для таблицы UserThesis
.Я бы не хотел этого делать из-за того, что БД Oracle распределялась между различными приложениями.
Проверка вручную связей в представлениях и шаблонах (большая нагрузка на Oracle).
Какой из них лучший?Есть еще идеи?