我正在使用SqlAlchemy與現有的PostgreSQL數據庫進行交互。加載與sqlalchemy的現有多對多關係表
我需要訪問以多對多關係組織的數據。該文檔介紹瞭如何創建關係,但我無法找到一個用於整齊加載和查詢現有關係的示例。
我正在使用SqlAlchemy與現有的PostgreSQL數據庫進行交互。加載與sqlalchemy的現有多對多關係表
我需要訪問以多對多關係組織的數據。該文檔介紹瞭如何創建關係,但我無法找到一個用於整齊加載和查詢現有關係的示例。
查詢現有關係與創建新關係並無太大區別。你幾乎寫了相同的代碼,但指定了已經存在的表名和列名,當然你不需要SQLAlchemy來發出CREATE TABLE
語句。
請參閱http://www.sqlalchemy.org/docs/05/mappers.html#many-to-many。您只需爲示例中的現有父,子和關聯表指定外鍵列,然後指定autoload=True
以填寫表中的其他字段。如果您的關聯表存儲額外的信息,就像他們幾乎總是這樣做的那樣,您應該將您的多對多關係分解爲兩個多對一的關係。
我在使用MySQL時學習了SQLAlchemy。有了這個數據庫,我總是必須指定外鍵關係,因爲它們不是顯式的數據庫約束。您可能會感到幸運,並能夠從數據庫中反映出更多,但您可能更喜歡使用類似http://pypi.python.org/pypi/sqlautocode的代碼來編寫整個數據庫模式並避免反射延遲。