python - 如何防止跨用户相关对象

标签 python mysql sql django

如何防止 Multi-Tenancy 共享架构架构中的跨用户相关对象?

例如:

  • ModelA 具有 ModelB 的外键 parent
  • instance_a.parent == instance_b

我始终可以检查 instance_A.owner == instance_b.owner 是否存在,但这意味着每个 INSERT 查询需要一个额外的 SELECT 查询。

有没有更好的方法来验证相关对象?

我的数据库是MySQL。

最佳答案

在进行查询时使用 select_lated('model_B') .. https://docs.djangoproject.com/en/1.9/ref/models/querysets/#select-related

关于python - 如何防止跨用户相关对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134916/

相关文章:

sql - 帮助进行 SQL 查询

mysql - 如何使用 GROUP BY 一次统计新类别和旧类别

php - 基于 mySQL 中的 DATE() 运行 1 个查询而不是 14 个

sql - 如何在 SQL 中使用选择查询生成 csv 文件

python - 使用另一列的最新值填充数据框列

mysql - SQL "group by"仅返回第一行 - 之二

python - "Permission Denied"来自Python服务器

mysql 错误 (#1064) 存储过程创建错误

python - 将列表转换为字典列表

python - 迁移到 Python 3 - 最佳实践