Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 SQLAlchemy:数据库中的每个表都必须与应用程序中的类相关吗?_Python_Oop_Orm_Sqlalchemy - Fatal编程技术网

Python SQLAlchemy:数据库中的每个表都必须与应用程序中的类相关吗?

Python SQLAlchemy:数据库中的每个表都必须与应用程序中的类相关吗?,python,oop,orm,sqlalchemy,Python,Oop,Orm,Sqlalchemy,我想在Python3.2和SqlAlchemy 0.8中实现一个应用程序。我已经完成了ERD,到目前为止,它有大约30张桌子。问题是,现在我有30个Postgresql表,这是否意味着在我的SQLAlchemy ORM实现中,我必须创建30个类?这是因为到目前为止,在我的应用程序中,我已经创建了大约8个表,并且我必须为每个表创建类 在我的ERD中,许多表都是“pivot”表,例如一个名为organization_type的表,它只有两列(ID和Name列)。此表中最多只有3个条目,即“公共、私人

我想在Python3.2和SqlAlchemy 0.8中实现一个应用程序。我已经完成了ERD,到目前为止,它有大约30张桌子。问题是,现在我有30个Postgresql表,这是否意味着在我的SQLAlchemy ORM实现中,我必须创建30个类?这是因为到目前为止,在我的应用程序中,我已经创建了大约8个表,并且我必须为每个表创建类

在我的ERD中,许多表都是“pivot”表,例如一个名为organization_type的表,它只有两列(ID和Name列)。此表中最多只有3个条目,即“公共、私人、合作”。此组织类型表与组织表相关

在我的数据库规范化知识中,我认为这是一个不错的设计,但我对创建名为Organization Type的类感到有点犹豫。有没有一种方法我仍然可以访问那些“pivot”表,而不必创建它们的等价类,也不必编写自己的原始SQL查询


也许是为了让我明白,在OO开发和使用ORM时,我别无选择,只能实现这些类来访问表?

。如果您使用的是对象关系映射器,那么如果您打算在对象关系映射器中使用对象,则应该有一个反映实体的对象。如果您担心将对象模型与已实现的数据库模式协调所需的代码量,那么您可能希望了解sqlalchemy的反射功能:我在这里有一个较长的答案,因为您可以使用中的方法来自动化看似多余的任务,包括自动创建新的映射类,但也要记住,如果您真的不想有任何样板文件,您可以使用这样的工具(它还可以根据需要为新表名创建映射类)。映射它们的优点是可以有效地使用relationship()。