Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么是更好的方法,更少的代码和更多的外键或更多的代码和列?_Python_Django_Postgresql_Model_Foreign Keys - Fatal编程技术网

Python 什么是更好的方法,更少的代码和更多的外键或更多的代码和列?

Python 什么是更好的方法,更少的代码和更多的外键或更多的代码和列?,python,django,postgresql,model,foreign-keys,Python,Django,Postgresql,Model,Foreign Keys,我正在编写我的第一个商业Django应用程序,我正在寻找一些帮助,因为我在相当长的一段时间内一直在修改和优化模型 现在我正在考虑创建模型的更好方法是什么。假设我有几个模型都有几个共同的字段(比如姓名、城市、地址、邮政编码) 你能告诉我什么是更好的方法吗?在每个模型(表)中重复这些字段(列),或者在任何适合的地方使用外键,创建一个地址模型,即使这些地址是完全不同的东西(人、机构等),我也不需要在一个表中使用它们 我知道我做的外键越多,每次应用程序需要其他表中的一些信息时,它会发出越多的查询?甚至值

我正在编写我的第一个商业Django应用程序,我正在寻找一些帮助,因为我在相当长的一段时间内一直在修改和优化模型

现在我正在考虑创建模型的更好方法是什么。假设我有几个模型都有几个共同的字段(比如姓名、城市、地址、邮政编码)

你能告诉我什么是更好的方法吗?在每个模型(表)中重复这些字段(列),或者在任何适合的地方使用外键,创建一个地址模型,即使这些地址是完全不同的东西(人、机构等),我也不需要在一个表中使用它们

我知道我做的外键越多,每次应用程序需要其他表中的一些信息时,它会发出越多的查询?甚至值得考虑吗

我看到的好处是:

  • 更少的代码
  • 不要重复我自己
缺点和缺点:

  • 对相同信息的更多查询
  • 以后实现起来有点复杂
  • 重复行的可能性更大

谢谢您的帮助。

如果我完全理解您的问题,我的逻辑方法是只定义一次与模型相关的文件(模型1),如果您想使用它们并将它们(我的意思是fildes模型1)共享到其他模型中,您只需创建Join(Foreignkey,多对多…)在其他模型和模型1之间。

我建议您选择基本模型,并使用FK关联特定信息

在一个用户示例中,您可以像您所说的那样拥有一个基本模型,然后是一个“机构”和一个“个人”档案,或者类似于与用户相关的档案,然后从基本模型访问所有这些档案

有了这一点,您将在代码的可读性和逻辑性方面获得很多。还可以减少数据库上的冗余

我还建议检查外键的性能