2013-05-19 4 views
0

저는 SQLAlchemy를 사용하여 작성자 간의 관계를 나타냅니다. 필자는 다른 저자 (coauthorshp)와 관계를 맺고 관계에 여분의 데이터를 추가하고 싶습니다. 작성자는 a입니다. 나는 동료를 찾을 수 있습니다. 이 두 개의 서로 다른 개체 사이에 수행되는 방법SQLAlchemy의 테이블에서 다 대다 관계

이것이다 :

class Association(Base): 
    __tablename__ = 'association' 
    left_id = Column(Integer, ForeignKey('left.id'), primary_key=True) 
    right_id = Column(Integer, ForeignKey('right.id'), primary_key=True) 
    extra_data = Column(String(80)) 
    child = relationship('Child', backref='parent_assocs') 

class Parent(Base): 
    __tablename__ = 'left' 
    id = Column(Integer, primary_key=True) 
    children = relationship('Association', backref='parent') 

class Child(Base): 
    __tablename__ = 'right' 
    id = Column(Integer, primary_key=True) 

하지만 내 경우에 이런 짓을 했을까 방법?

coauthorship의 본질은 그것이 양방향이라는 것입니다. 그래서 튜토리얼 (id_left, id_right)을 coauthoship 객체를 통해 coauthorship 테이블에 삽입 할 때 역방향 관계를 쉽게 삽입 할 수있는 방법이 있습니까? 나는 협회 프록시를 사용하기를 원하기 때문에 묻습니다. 말 그대로 삽입 사용자들은 모든 id_left, id_right에 대한, 즉, association의 행 쌍을하려는 경우

+0

정확히 무엇을 하려는지 예를 들려 줄 수 있습니까? 질문의 종류를 읽는 것이 의미가 있지만 더 많은 정보가 필요합니다. – CodeLikeBeaker

답변

0

, 당신은 또한 당신이 양쪽에 APPEND 이벤트를 수신하는 attribute event를 사용하는 것, id_right, id_left 삽입 및 생산 다른 방향으로 덧붙인다.

두 방향으로 부모/자식 사이를 탐색하려는 경우 id_left, id_right의 단일 행이면 충분합니다. 이런 종류의 매핑과 관련된 문서의 예는 모든 것을 보여줍니다.