문제

내가 구성된 예약 데이터베이스가 있다고 가정 해 봅시다. 사용자:

user_id
fname
lname

그리고 그들의 티켓

ticket_id
user_id
flight_no

그리고 관련 비행

flight_no
airline
departure_time
arrival_time

이 Google Appengine을 이동하려면 무엇을 변경해야합니까?

나는 Appengine을 이해합니다 조인을 허용하지 않습니다.

그것은 내 테이블이 모두 함께 뭉친 필드 중 하나가되어야한다는 것을 의미합니까?

예약:

user_id
fname
lname
ticket_id
flight_no
airline
departure_time
arrival_time

다시 말해, 내 모든 쿼리는 이제 같은 테이블에 대해 실행됩니까?

도움이 되었습니까?

해결책

필요한 변경 사항은 주로 실행 해야하는 쿼리에 달려 있습니다. 아마도 당신은 아마도 몇 가지만 추가하면 될 것입니다.

쿼리 목록을 작성한 다음 살펴보십시오. 쿼리 제한. 문제가있는 것을 발견 한 후에는 BigTable의 제약을 염두에두고 다시 작성하십시오.

예를 들어, 비행 목록 목록에 대한 티켓 수를 자주 찾아야하는 경우에는 다음과 같이 할 수 없습니다.

SELECT
    flight_no, COUNT(*)
FROM
    flights
JOIN
    tickets ON tickets.flight_no = flights.flight_no
GROUP BY
    flight_no

따라서 티켓 카운터를 추가해야합니다. flights 티켓을 작성/삭제할 때 증가/감소.

이것의 좋은 측면은 Bigtable이 매우 확장 가능한 데이터베이스 설계를 갖도록 강요한다는 것입니다. 나쁜 편은 당신이 정말로 당신이 정말로 당신의 시간을 낭비한다는 것입니다. 필요 확장 가능한 디자인.

다른 팁

WebService를 통해 Google Appengine Apps의 진정한 SQL 관계형 데이터베이스를 사용할 수 있습니다.

그러한 웹 서비스 중 하나는 rdbhost입니다 http://www.rdbhost.com .

각 페이지보기에는 DB 서버에 대한 또 다른 백엔드 HTTP 페이지 요청이 필요하지만 이미 가지고있는 SQL 설계 지식을 사용할 수 있다는 점에서 타협, 특히 속도가 포함됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top