2015-01-23 4 views
0

방금 ​​Flask를 배우기 시작했고 flask-sqlalchemy 패키지를 사용했습니다. 나는 역할 (id, name)과 사용자 (id, username, password, role_id)와 role_id가 roles.id에 대한 외래 키인 스키마를 가지고있다. 하나의 역할로서 일대 다 (one to many) 관계를 많은 사용자에게 할당 할 수 있지만 모든 사용자는 단일 역할을 갖습니다. 다음 코드에서 SQLAlchemy 관계, 어떤 관계를 사용해야합니까?

, 여기

class Role(db.Model): 
    # .. 
    users = db.relationship('User', backref='role') 

class User(db.Model): 
    # .. 
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id') 

, 나는 ROLE_ID의 사용을 설립,하지만 우리는 db.relationship 왜 필요합니까?

  1. 역 참조
  2. primaryjoin
  3. 게으른
  4. uselist
  5. order_by
  6. secondaryjoin

답변

4
: 무엇을 사용하는 관계 옵션과 장소의 사용은 무엇입니까

하 ving db.relationship은 어떤 경우에는 매우 도움이되며 긴 쿼리를 피할 수 있습니다.

예를

를 들어

db.relationship없이 :

role = ... # some role 
Session.query(User).filter_by(role_id=role.role_id).all() 

db.relationship와 대 : 당신을위한 가장 유용한

role = ... # some role 
role.users 

에 관한 관계의 옵션은 아마 backref입니다. 사용자 모델에 역 참조 속성을 생성합니다.

대신이 일을 : 예를 들어

Session.query(Role).filter_by(role_id=user.role_id).first() 

당신은이 작업을 수행 할 수 있습니다 : 그것은 내가 할 수있는 어떤 것보다 더 많은 정보 때문에 나머지 옵션에 관한

user.role 

, 나는, official documentation을 읽을 제안 여기에 대답을 넣어.

관련 문제