2017-04-07 1 views
0

Bei der Deklaration der Modellklasse, gibt es keine Einschränkungen für das Hinzufügen der übergeordneten Schlüssel:Können verschiedene Entitäten desselben Typs gleichzeitig unterschiedliche Eltern in Google ndb haben? Wenn ja, wie ist das nützlich?

class Employee(): 
    name = ndb.StringProperty(required=True) 

class Address(): 
    city = ndb.StringProperty(required=True) 

class Education(): 
    college = ndb.StringProperty(required=True) 

Die aktuelle Art und Weise, in der wir den Vorfahren Pfad hinzufügen während des Schreib auf den Datenspeicher ist als unten

gezeigt
employee = Employee() 
employee.put() 

address1 = Address(parent=employee) 

Also, gibt es nichts, was von einem daran hindert:

address1 = Address(parent=employee) 
address2 = Address(parent=education) 

die sorta wierd fühlt!

Antwort

0

Ja, sie können - der Elternteil kann buchstäblich eine Entität jeder Art sein (oder None - eigenständige Entitäten, AKA-Entitätsgruppenbesitzer).

Ihr Beispiel ist genau eine solche Art der Nutzung.

Wie für die Benutzerfreundlichkeit hängt es wirklich von der Anwendung ab. Wenn Sie es nützlich finden, ist es :) Wenn nicht - Sie werden es wahrscheinlich nicht benutzen.

Zum Beispiel könnte Ihre App auch Entitäten für Unternehmen oder Hochschulen/Universitäten, die alle mindestens eine Address Kind Entität mit ihnen verbunden haben.

Side Hinweise:

  • Sie Ihre Klassen haben sollte erben die ndb.Model Klasse ihre Instanzen ndb Einheiten zu machen:

    class Address(ndb.Model): 
    
  • Sie die Schlüssel in der Kindermuttergesellschaft übergeben sollte Erstellung, nicht die übergeordnete Entität selbst:

    address1 = Address(parent=employee.key) 
    
+0

Ah, ja. Ich stimme den Randnotizen zu. Irgendwie hat man sie übersehen. Aber die Frage, die ich stellen wollte, ist, ob zwei verschiedene Entitäten derselben Art gleichzeitig verschiedene Eltern haben können? (Habe auch die Frage bearbeitet) –

+0

Ja - dafür ist die Antwort wirklich (abgesehen von den Notizen). –

Verwandte Themen