Guardian権限などのアプリのデータを保持する別のローカルDBを使用して、一部のOracleデータベースへのWebフロントエンドであるDjangoアプリを開発しています。問題は、私が制御できないさまざまな場所から変更できることです。
、、の3つのモデルUser
があるThesis
としUserThesis
ます。
UserThesis
Thesis
-との間の関係を指定するテーブルUser
(User
の共著者であるThesis
)
シナリオ:
User
他のアプリによってテーブルのThesis
エントリを削除することにより、の作成者として削除されます。UserThesis
User
Thesis
Djangoアプリを使用して変更しようとします。そして、GuardianとDjangoはの変更について知らないため、彼は成功しUserThesis
ます。
私はいくつかの解決策について考えました:
UserThesis
いくつかのcronジョブで、エントリの変更日を確認して変更を探します。追加や削除を簡単に確認するには、すべての関係をもう一度確認する必要があります。Oracle DBスキーマを変更してGuardianDBテーブルを追加し、
UserThesis
テーブルにトリガーを作成します。Oracle DBは多数の異なるアプリ間で共有されているため、これは行いたくありません。ビューとテンプレートの関係を手動でチェックします(Oracleの負荷が高くなります)。
どれが最高ですか?他のアイデアはありますか?