Frage

Ich baue eine Anwendung mit einer viele zu viele Beziehung; Ein Gegenstand des Unternehmens ‚Bild‘ kann auf eine beliebige Anzahl von Galerien ( ‚Galerie‘) verbunden werden. Und natürlich eine Galerie kann eine beliebige Anzahl von Bildern halten.

Also, nach dem Google Vorschlag hier werde ich eine Liste bei ‚Bild‘ verwenden, die die Fremdschlüssel der ‚Galerie‘ halten. Dies ist der BigTable Ansatz.

(Der alte Stil Relationale DB Ansatz eine Tabelle / Einheit zwischen ‚Bild‘ zu haben wäre und ‚Galerie‘.)

Hier ist meine Frage: Wenn der Schlüssel zu speichern, soll ich für einen „StringListProperty“ auf ‚Bild‘ gehen oder würde eine „Listproperty (db.Key)“ Arbeit besser

Ein Grund sehe ich für ein String wäre, dass ich auch andere Werte dann Keys speichern konnte, aber auf der anderen Seite, die schmutzig Stil ohnehin wäre. Aber ich bin auch ziemlich sicher, dass Google nicht vorgeschlagen, mehr als eine Liste an einem Unternehmen zu verwenden, da der Index (es) explodiert. Also das wird mir eine Backdoor.

Wie für die Listproperty mit dem Typ " Key " ein Punkt wäre die automatische Überprüfung, wenn der Wert tatsächlich ein Schlüssel ist.

Da es sehr einfach ist, Strings Keys und umgekehrt zu konvertieren, ich sehe keinen Grund für eine der Liste Typen hier bevorzugen.

Wenn es um Performance-Probleme kommt, habe ich keine Ahnung, wie ich das testen könnte - aber es sieht aus wie dies der wichtigste Faktor in dieser Entscheidung sein wird,

.

Neugierig auf Ihre Eingabe. Vor allem, wenn jemand die Leistung auf diesem getestet oder wäre so freundlich und es tut.

Cheers, // Hannes

War es hilfreich?

Lösung

Verwenden Sie ein db.ListProperty(db.Key) wenn Sie beabsichtigen, Listen der Schlüssel zu speichern. Sie werden in einer binären Darstellung gespeichert werden, die kompakter als die String-Darstellung ist, dass Sie in einer String-Liste verwenden würden.

Du hast Recht, dass die Schlüssel mit anderen Objekten in einer Liste Mischen ist chaotisch. mehr Listen in einer Einheit zu haben, ist in Ordnung, solange Sie dies nicht tun Index mehr als eine von ihnen in dem gleichen benutzerdefinierten Index -. das ist, was bewirkt, dass explodierender Indizes

Andere Tipps

Mit db.ListProperty (db.Key), dann ist dies die Daten holen einfacher als String machen .. wenn Gallery Modelleigenschaft pic_list hatte hat, die vom Typ db.ListProperty (db.Key) ist, die die Liste enthält von Schlüssel Bild Einheit .. Angenommen Bild ist der Name Ihres Unternehmens .. dann Picture.get (// GalleryObject //. pic_list) werden alle Bilder entites erhalten ..

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top