2013-04-13 12 views
0

這個問題基本上是兩個部分。 1.我有一種情況,我需要事物是唯一的,即db中的元素需要彼此獨一無二。一個獨特的django一起在turbogears/sqlalchemy

假設我們有一個模型的東西(粗糙的僞代碼)

Class ShoppingList(object): 
    thing1_id = Column(Integer) 
    thing2_id = Column(Integer) 

現在我需要thing1_id和thing2_id是唯一的,即一起集合thing1_id和thing2_id必須是唯一的一起。來自django世界,我知道你可以在unique_together的django模型中進行元聲明。但在渦輪增壓中怎麼能做到這一點。

  1. 另外我該如何在遺留系統上實際應用unique_together。

回答

1
  1. 對於你的問題的第一部分,如果我正確地理解你的問題,我相信你所談論的需要定義複合主鍵。如http://docs.sqlalchemy.org/en/latest/core/schema.html#describing-databases-with-metadata中所述:

    多列可以被分配primary_key = True標誌,其表示多列主鍵,被稱爲組合主鍵。

    class ShoppingList(Base): 
        thing1_id = Column(Integer, primary_key=True) 
        thing2_id = Column(Integer, primary_key=True) 
    
  2. 至於你的問題的第二部分,我相信你的意思怎麼樣一個:

    定義上使用的SQLAlchemy聲明ORM方式一類這樣的關係,應該是簡單會爲現有的傳統數據庫定義相同的SQLAlchemy映射。如果是這樣,你應該可以使用上面的方法,只要不要從ORM定義中創建數據庫。您也可以使用經典映射方式,描述:http://docs.sqlalchemy.org/en/rel_0_8/orm/mapper_config.html?highlight=composite%20primary%20key#classical-mappings