1

我正在开发一个 Django 应用程序,它是某个 Oracle 数据库的 Web 前端,而另一个本地数据库则保存着应用程序的数据,例如 Guardian 权限。问题是它可以从我无法控制的不同地方进行修改。

假设我们有 3 个模型UserThesisUserThesis

UserThesisThesis- 指定和UserUser共同作者Thesis)之间关系的表格

设想:

  1. User通过其他应用程序删除表中的Thesis条目,将其作为作者删除。UserThesis

  2. User尝试Thesis使用我们的 Django 应用程序进行修改。他成功了,因为 Guardian 和 Django 不知道UserThesis.

我想到了一些解决方案:

  1. 让一些 cron 作业UserThesis通过检查条目的修改日期来查找更改。易于检查添加,删除将需要再次查看所有关系。

  2. 修改 Oracle DB 模式以添加 Guardian DB 表并在UserThesis表上创建触发器。我不想这样做,因为 Oracle DB 在许多不同的应用程序之间共享。

  3. 手动检查视图和模板中的关系(Oracle 上的负载较重)。

哪一个是最好的?还有其他想法吗?

4

1 回答 1

0

我决定手动检查权限,尽可能缓存它。我最终得到了 get_perms_from_cache(self, user) 模型方法,这对我有很大帮助。

于 2011-08-10T13:23:09.997 回答