1
나는 많은 열이있는 테이블이 - 모든 열 개별적으로 수동으로 각 열 이름을 지정하지 않고 통해SQLAlchemy의 쿼리 동적 필드
class Dummy(object):
__tablename__ = 'dummies'
c1 = Column(Integer)
c2 = Column(Integer)
c3 = Column(Integer)
...
cN = Column(Integer)
내가 쿼리 수를? -
for i in range(1, N):
c_name = 'c%d' % i
dummy = DBSession().query(Dummy).filter_by(???=0).first()
감사합니다.
이 패턴을 사용하면 충분한 열이 없을 수 있다는 신호입니다. 더 잘 추가하십시오. 모든 심각성에서,이 반 패턴은'Dummy' 테이블에 외래 키, 컬럼 값, 가능하게는 아이템을 순서대로 유지하는 인덱스를 가진 새로운 테이블로 컬럼리스트를 인수 분해하는 것을 고려해야 함을 나타냅니다. 그러면 쿼리가 더 쉬워집니다. – SingleNegationElimination
SQLAlchemy의 유연성을 과소 평가했으며 직접 getattr을 테스트해야했습니다. db 디자인에 관해서는, NoSQL과 같은 효율성이 경우에 따라 정당화 될 수 있다고 말하고 있습니다. – Jerry
글쎄, 그게 뭔지 모르겠다. N 개의 인덱스를 가진 N 개의 인덱스는 단지 하나의 인덱스만으로 내부 조인과 비교할 때 상황을 느리게 할 수있다. 심지어 데이터베이스에 올바른 질문을하면 무거운 액세스 패턴을 읽는 것이 좋습니다. – SingleNegationElimination