python - 在 django 中组织关系的最佳方式是什么?平坦的还是树状的?

标签 python django django-models database-relations

我有 3 个模型

客户端

贷款

分期付款 - 贷款的一部分

我应该这样做:

loan-foreignKey(client)
installment-foreignKey(loan)

并获得类似这样的客户分期付款:

loans = client.loan.all()
result = array()
foreach(loans as loan):
    result = result + loan.installments.all()
return result;

或者我应该这样做:

loan-foreignKey(client)
installment-foreignKey(client)
installment-foreignKey(loan)

并且只是: client.installment.all()

从程序员的角度来看,第一种方式接缝更干净(周围没有意大利面条,没有重复的字段),但我担心性能(您需要搜索数据库中的所有贷款,然后搜索该贷款中的分期付款)

最佳答案

根据 Python Zen:扁平优于嵌套。您应该将模型视为对象并应用面向对象编程的原则。

思考您拥有的实体,并应用模拟它们现实生活交互的关系。

“程序必须编写供人阅读,并且只是顺便供机器执行。”

关于python - 在 django 中组织关系的最佳方式是什么?平坦的还是树状的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18060894/

相关文章:

python - Django - 使用从类似 REST 的 API 检索的数据构建报告的应用程序

python - 计算平均交货时间(天) Django ORM

python - 尝试从嵌套函数链(在 Python 中)返回 True 变量...

python - 将 Pandas Dataframe 转换为嵌套字典

python - 有什么办法可以巧妙地包装一个单元格吗?

python - SQL 查询在控制台中有效,但在 python 中无效

Django生成条形码并通过浏览器下载

django - 如何在 Django 上自动创建 super 用户?

python - TypeError at/__init__() 恰好接受 1 个参数(给定 2 个)

python - 如何在单个查询集中组合两个 django 模型对象值