什么是更好的方法,更少的代码和更多的 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 或更多的代码和列? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章