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