我有 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/