我有三个模型
client
loan
installment-贷款的一部分
我应该这样做:

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()
从程序员的角度来看,FirstWaySeamsCleaner(没有spagetti,没有重复的字段),但我担心性能(您需要在数据库中搜索所有贷款,然后在此贷款中搜索分期付款)

最佳答案

根据Python的禅:扁平比嵌套好。您应该将模型视为对象,并应用面向对象编程的原则。
思考你拥有的实体,并应用这些关系来模拟它们在现实生活中的相互作用。
程序必须为人们阅读而编写,并且只能为机器执行而附带编写

10-07 17:42