필자는 작성된 사양에서 SQLAlchemy 코드를 생성하는 작은 도구를 작성했습니다. 이 도구는 다음과 같은 코드를 만들 수 있습니다SQLAlchemy 쿼리 결과에서 외래 키를 "확인"하는 방법은 무엇입니까?
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
address_id = db.Column(db.Integer, db.ForeignKey('address.id'))
class Address(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(50))
내가, 내가 매력처럼 작동 할 수 그들을 조회 할 수 있습니다 새 레코드를 삽입 할 수 있습니다,하지만 난 정말 수동의 주소를 찾을 필요하지 싶습니다 사람.
Person 개체를 통해 특정 사람에게 속한 주소에 액세스 할 수 있기를 원합니다. 예제를 올바르게 이해했다면 이렇게 할 필요가 있습니다 (예 : http://flask-sqlalchemy.pocoo.org/2.1/models/#one-to-many-relationships).
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
address = db.relationship('Address', backref='person',
lazy='dynamic')
class Address(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(50))
person_id = db.Column(db.Integer, db.ForeignKey('person.id'))
이 나는 모든 주소에게 사람에 대한 "링크"를 제공해야하고 역 참조 그래서 나는 사람에 대한 주소를 가질 수 뒤로 나 모든 보인다? 사람에게서 직접 할 수 없습니까?
또한 코드를 작성하는 것이 훨씬 더 복잡하므로이를 피하고 싶습니다.
나는 그 이유를 묻는다. 내가 찾을 수있는 1 : 1 예제가 없으며 1 : N 예제 모두가 (나에게) 불필요한 역 참조가 진행되고 있습니다. 가능한 한 가장 쉬운 방법을 1 : 1하는 방법을 알고 싶습니다. 그래서 사람이있을 때 주소에 대한 두 번째 쿼리를 수행 할 필요가 없습니다. – ramdyne