我正在编写我的第一个商业Django应用程序,并且由于要在相当长时间内坚持更改和优化模型而一直在寻求帮助。
现在,我正在考虑什么是创建模型的更好方法。假设我有几个模型,但都没有几个共同的字段(例如名称,城市,地址,邮政编码)。
您能告诉我什么是更好的方法吗?在每个模型(表)中重复这几个字段(列),或者只是在适合的地方使用外键并创建一个地址模型,即使这些地址具有完全不同的含义(人,机构等),而我不会在一张桌子上需要它们。
我了解我使用的外键越多,每次需要从其他表中获取一些信息时,应用程序将进行的查询越多?甚至值得考虑吗?
我看到的优势是:
和缺点:
感谢您的帮助。
答案 0 :(得分:0)
如果我很好地理解了您的问题,那么对我来说,逻辑方法是只定义一次与模型相关的文件(模型1),如果您要使用它们并将它们共享(我的意思是将模型1)共享给其他人您刚创建的模型在其他模型和模型1之间加入Join(Foreignkey,many_to_many ...)。
答案 1 :(得分:0)
我建议您使用基本模型并使用FK关联特定信息。
在一个用户示例中,您可以像您所说的那样拥有一个基础模型,然后有一个'institution_profile'和'individual_profile'或类似的与用户相关的东西,然后可以从该基础模型中访问所有这些模型。
有了这个,您将在代码的可读性和逻辑上获得很多。此外,您还可以减少数据库的冗余性。
我还建议检查this article有关外键性能。