2008-10-30 57 views
3

我找不到任何有關如何使用SQLAlchemy的聲明性語法指定關係 的任何適當文檔。它不受支持嗎?也就是說,我應該使用「傳統」語法嗎?
我正在尋找一種方法來指定更高級別的關係,避免不必亂搞外鍵等..我想只聲明「地址= OneToMany(地址)」,並讓框架處理的細節..我知道Elixir可以做到這一點,但我想知道「簡單」的SQLA是否也可以做到這一點。
感謝您的幫助!如何使用SQLAlchemy聲明性語法指定關係?

+0

你是什麼意思?「就是說,我應該使用」傳統「語法嗎?」請詳細說明。 – 2008-10-30 15:56:27

+0

那麼,我正在尋找一種方法來指定更高層次的關係,所以避免與外鍵等混亂。我想只聲明「地址= OneToMany(地址)」,並讓框架處理的細節..我知道Elixir可以做到這一點,但我想知道「簡單」的SQLA是否也可以做到這一點。 – Joril 2008-10-30 16:16:08

+0

@Joril:請你用你的意見更新這個問題嗎? – 2008-10-30 17:40:27

回答

3

假設你是指the declarative plugin,我要說的話是記錄舉例這裏的一切:

class User(Base): 
    __tablename__ = 'users' 

    id = Column('id', Integer, primary_key=True) 
    addresses = relation("Address", backref="user") 

class Address(Base): 
    __tablename__ = 'addresses' 

    id = Column('id', Integer, primary_key=True) 
    user_id = Column('user_id', Integer, ForeignKey('users.id')) 
0

Declarative docs的「配置關係」部分。不像「OneToMany」那麼高,但比完全指定關係更好。

class Address(Base): 
    __tablename__ = 'addresses' 

    id = Column(Integer, primary_key=True) 
    email = Column(String(50)) 
    user_id = Column(Integer, ForeignKey('users.id'))