0
Flask/SQLAlchemy 프로젝트에는 쿼리하는 해당 테이블 개체가있는 Styles_Index라는 인덱스 테이블이 있습니다. ) (sqlite3를의 스키마는SQLAlchemy 테이블 이름을 두 개의 밑줄로 변경했습니다.
CREATE TABLE Styles_Index
(
beer_id integer not null,
style_id integer not null,
primary key (beer_id, style_id)
);
처럼 보이는 그리고 내가 SQLAlchemy의 BaseQuery.join를 통해 공통 키를 공유하는 또 다른에 테이블을 조인 할 때 파이썬의 객체는
class Styles_Index(db.Model):
beer_id = db.Column(db.Integer, db.ForeignKey('beers.id'),
primary_key = True)
style_id = db.Column(db.Integer, db.ForeignKey('styles.id'),
primary_key = True)
처럼 보인다
SELECT styles__index.id AS styles__index_id,
styles__index.beer_id AS styles__index_beer_id,
styles__index.style_id AS styles__index_style_id
FROM styles__index JOIN styles ON styles__index.style_id = styles.id
LIMIT ? OFFSET ?
여기서 Styles_Index는 하나가 아닌 두 개의 밑줄을 포함합니다. SQL의 _ 와일드 카드 문자로 인한 의도적 인 디자인 선택입니까? 원시 SQL을 쓰지 않고이 쿼리를 작성하는 더 좋은 방법이 있습니까?
일반적인 파이썬 클래스 구문은 클래스 케이스 즉 StylesIndex (PEP 8 기준)를 사용하는 것인가요? 그 옵션입니까? –
그것은 확실히 선택 사항입니다, 나는 그것을 시도하고 무슨 일이 일어나는 지 보도록하겠습니다. 내가 그것을 피할 수 있으면 차라리 테이블 이름을 바꾸지 않을 것입니다. –
생성 된 테이블 이름과 구문을 확인하십시오. –