我刚刚开始学习pythondjango,并有很多使用PHP和MySQL构建高流量网站的经验。到目前为止,让我担心的是Python过于乐观的方法,即永远不需要编写自定义SQL,并且它会自动在数据库中创建所有这些外键关系。在过去的几年里我学到了一件事国际象棋网当你在处理像MySQL这样经常需要被告知应该使用(或避免)哪些索引的东西时,不编写自定义SQL是不可能的,而且外键是一个死刑判决。Percona最强烈的建议是,为了获得最佳性能,我们删除了所有FK。在
在Django中有没有一种方法可以在models文件中实现这一点?在不创建实际数据库FKs的情况下创建关系?或者有没有一种方法可以从数据库级别开始,设计/创建我的数据库,然后让Django对模型文件进行反向工程?在
如果你不想要外键,那就避免使用
models.ForeignKey()
models.ManyToManyField()
,以及models.OneToOneField()
。在Django将自动创建一个名为
id
的自动递增int字段,您可以使用该字段来引用单个记录,也可以通过将字段标记为primary_key=True
来覆盖该字段。在还有关于running raw SQL queries on the database的文档。在
允许您从django文件反向工程现有的django表。这只是对你问题的部分回答;)
原始SQL就这么简单:
在模型定义时,数据库的非规范化由您决定。在
也可以将非关系数据库(MongoDB,…)与Django NonRel一起使用
相关问题 更多 >
编程相关推荐