什么是更好的方法,更少的代码和更多的 ForeignKeys 或更多的代码和列? [关闭]

Posted

技术标签:

【中文标题】什么是更好的方法,更少的代码和更多的 ForeignKeys 或更多的代码和列? [关闭]【英文标题】:What is a better approach, less code and more ForeignKeys or more code and columns? [closed] 【发布时间】:2020-11-27 17:34:27 【问题描述】:

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

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

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

我知道我做的外键越多,应用程序每次需要其他表中的一些信息时都会进行更多的查询?是否值得考虑?

我看到的优点是:

更少的代码 不要重复自己

及缺点:

对相同信息的更多查询? 稍后实现有点复杂 重复行的可能性更大

感谢您的帮助。

【问题讨论】:

【参考方案1】:

我建议您使用基本模型并使用 FK 来关联特定信息。

在一个用户示例中,您可以有一个您所说的基本模型,然后是“institution_profile”和“individual_profile”或与用户相关的类似内容,然后只需从基本模型访问所有这些。

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

我还建议检查this article 的外键性能。

【讨论】:

【参考方案2】:

如果我很好理解你的问题,我的逻辑方法是只定义一次与模型相关的文件(模型 1),如果你想使用它们并将它们(我的意思是 fildes 模型 1)分享给其他人您刚刚创建的模型 在其他模型和模型 1 之间加入 ( Foreignkey, many_to_many ...)。

【讨论】:

以上是关于什么是更好的方法,更少的代码和更多的 ForeignKeys 或更多的代码和列? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

jQuery学习教程,写更少的代码,做更多的事情完

jQuery学习教程,写更少的代码,做更多的事情

jQuery开发教程让你写更少的代码,做更多的事情

jQuery学习教程,写更少的代码,做更多的事情

显示更多/更少的效果

更少的恒定时间迭代需要更多时间 - c++ 编译器依赖性?