W klasycznym relacyjnej bazy danych mam poniższej tabeli:Recursive związku z Google App Engine i BigTable
CREATE TABLE Person(
Id int IDENTITY(1,1) NOT NULL PRIMARY KEY,
MotherId int NOT NULL REFERENCES Person(Id),
FatherId int NOT NULL REFERENCES Person(Id),
FirstName nvarchar(255))
próbuję przekonwertować tę tabelę w tabeli Google App Engine. Mój problem dotyczy pól MotherId i FatherId. Próbowałem kodu poniżej, ale nie ma szans. Python mówi, że nie zna obiektu typu Person.
class Person(db.Model):
mother = db.ReferenceProperty(Person)
father = db.ReferenceProperty(Person)
firstName = db.StringProperty()
Czy ktoś wie w jaki sposób możemy modelować rekurencyjną relacji w tabeli Google App Engine? Jak mogę obejść ograniczenia App Engine?
AKTUALIZACJA Chcę nieco rozszerzyć problem ... Co zrobić, jeśli chcę dodać kolekcję dzieci?
children = db.SelfReferenceProperty(collection_name='children_set')
dad.children.append(childrenOne)
Próbowałem tego i to nie działa. Każdy pomysł, co robię źle?
Dzięki!
Będziesz również trzeba ustawić właściwość COLLECTION_NAME aby uniknąć 'Klasa osoba ma już właściwość person_set' błąd: matkę = db.SelfReferenceProperty (nazwa_zbioru = 'mother_set') ojciec = db.SelfReferenceProperty (nazwa_zbioru =” father_set ') – robertc
Nie wiedziałem o tym. Edytowane, dzięki :) – NicDumZ
To jest naprawdę fajne! Nie wiedziałem o tym. Jak mogę modelować kolekcję dzieci? dzieci = db.SelfReferenceProperty (nazwa_zbioru = 'children_set') dad.children.append (childrenOne) Próbowałem to i to nie działa. :( – Martin