2013-07-25 4 views
0

제목 -> 주제 -> 페이지라는 계층 구조가있는 데이터베이스를 만듭니다. 나는 두 가지 주제 만있을 것이라는 것을 안다. 예술과 과학은 말합니다. 부모 키를 문자열 "Arts"로 설정하는 주제를 만들 수 있습니까? 그렇기 때문에 두 개의 값만있는 db.model Subject를 만들 필요가 없습니까?db.model 클래스를 사용하지 않고 조상으로 키를 생성 할 수 있습니까?

또한 Subject 클래스를 db.Model에서 상속해야하는 경우 key.name이 주제의 이름이 될 것이므로 매개 변수를 넣지 않아도되는 방법이 있습니까?

답변

0

조상 키만 지정하면 충분하므로 조상 자체가 존재하지 않아도됩니다.

모델에 특성을 제공 할 필요는 없습니다.

class MyModel(db.Model): 
    pass 

그리고 마지막으로 당신이 그냥 시작 수집, 그래서 당신이 멀리 가기 전에 당신이 ndb로 전환에게 추천 할 것입니다.

0

팀의 답변이 맞습니다. 난 그냥 두 조상 아래 모든 엔티티를 가지고 가난한 디자인이다 대답에 추가 싶었어요.

트랜잭션 무결성을 보장해야하는 경우 조상이 존재합니다. 그것은 사실일지도 모르지만,이 경우에는 이것을 무시하십시오.

조상을 사용하면 해당 조상 트리 내의 모든 엔터티에 대한 쓰기 성능이 제한됩니다. 이러한 엔티티를 모두 잠글 필요가 없다면 조상은 실제로 사용하지 않고 일반 속성 만 사용할 수 있습니다.

+0

감사합니다. 트랜잭션 무결성을 어떻게 보장합니까? – Alxander

+0

나는 동의 할 것이다. 조상을 공유하는 많은 엔티티에서 동시 작성 수가 많을 경우 경쟁 가능성이 커집니다. –

+0

여기에 설명하기에는 너무 길다. 정말 궁금하신 분은 Google의 BigTable 백서를 읽어보십시오. 100 % 정확하지 않을 수도있는 것으로부터, 동일한 조상 아래 엔티티가 동일한 서버에 저장되므로 트랜잭션에 대해 잠글 수 있습니다. 그러나 데이터 저장소의 정상적으로 분산 된 성능을 잃어버린다는 의미이기도합니다. – dragonx

관련 문제