Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
一个大型模型还是多个模型继承以提高SQL性能?_Sql_Django_Django Models - Fatal编程技术网

一个大型模型还是多个模型继承以提高SQL性能?

一个大型模型还是多个模型继承以提高SQL性能?,sql,django,django-models,Sql,Django,Django Models,我有一个网站,允许用户发布他们想要出售的物品的广告。这些项共享某些字段,而在其他字段中有所不同。你可能想卖掉一辆车或一栋房子。您将有一个标题、创建日期、描述。。。共享的etc字段。但你们会有一块不用于建房子的汽车用地,等等。广告类型约为12种,如房屋、汽车或电脑。有两种方法: 要使用一个基本模型并由所有其他12种类型的ads继承它,数据库中将有13个表 使用一个模型,该模型包含所有ads类型的所有字段,并最终得到一个表和大约70个字段(表中的列) 从Django CRUD的角度来看,第二个选择似

我有一个网站,允许用户发布他们想要出售的物品的广告。这些项共享某些字段,而在其他字段中有所不同。你可能想卖掉一辆车或一栋房子。您将有一个标题、创建日期、描述。。。共享的etc字段。但你们会有一块不用于建房子的汽车用地,等等。广告类型约为12种,如房屋、汽车或电脑。有两种方法:

  • 要使用一个基本模型并由所有其他12种类型的ads继承它,数据库中将有13个表
  • 使用一个模型,该模型包含所有ads类型的所有字段,并最终得到一个表和大约70个字段(表中的列)

  • 从Django CRUD的角度来看,第二个选择似乎很容易,特别是在同时查询和搜索所有广告时。什么选择更好?如果我选择第二个选项,我是否会遇到与sql相关的性能问题?

    最佳实践和可维护性会让您走上#1的道路。如果您将来创建一个新广告,您将添加一个新表,而不是更改现有的表。如果您只想查询一种类型的广告,那么您可以查询相应的表,而不需要过滤掉其他类型的广告。如果您想列出所有广告,您可以使用父级并获取相关字段。是的,如果您需要从每个表中获取所有70个字段,这将是一种痛苦,但是由于每个广告都有不同的字段,因此您的显示也必须完全不同#谢谢你,马特。问题是,当显示广告列表时,我可能需要访问一些与特定广告相关的字段,如汽车类型和型号,或者房间和浴室。在这种情况下,我将得到大量的内部连接,这可能会对数据库造成很大的代价。如果需要添加新类型,我只需向现有的.table中添加列。在这种情况下,我将查询一个包含所有字段的表,而不管其类型如何。在显示中,我将检查广告的类型并呈现相应的模板。但我关心的是,在查询方面,一个大表比许多表好或坏。最终,你说的是毫秒。您应该关注代码的可维护性。