Je construis une application avec une relation plusieurs à plusieurs; Un élément de l'image 'Image' peut être lié à n'importe quel nombre de Galeries ('Galerie'). Et bien sûr, une galerie peut contenir n'importe quel nombre de photos. Donc, suivant la suggestion de Google ici, j'utiliserai une liste à 'Image' qui contient les clés étrangères de 'Galerie'. C'est l'approche BigTable.Que préférer dans GQL; StringListProperty ou ListProperty?
(L'ancienne approche Relational DB serait d'avoir une table/entité entre « Image » et « Galerie ».)
Voici ma question: Lors du stockage de la clé, dois-je aller pour un " StringListProperty "on" Picture "ou un" ListProperty (db.Key) "fonctionnerait-il mieux?
Une raison que je vois pour un StringList serait, que je pourrais stocker également d'autres valeurs puis Keys, mais d'autre part ce serait sale style de toute façon. Mais je suis également assez sûr que Google a suggéré de ne pas utiliser plus d'une liste à une entité parce que l'indice (s) va exploser. Donc cela me gardera une porte dérobée.
Quant au ListProperty avec le type « Key » un point serait la vérification automatique, si la valeur est en fait une clé.
Comme il est très facile de convertir des chaînes en clés et vice versa, je ne vois aucune raison pour l'un des types de liste de préférer ici.
En ce qui concerne les problèmes de performances, je n'ai aucune idée de la façon dont je pourrais tester cela - mais il semble que ce sera le facteur principal dans cette décision.
Curieux de vos commentaires. Surtout si quelqu'un a testé la performance sur ce sujet ou serait si gentil et le faire.
Cheers, // Hannes
Merci, Nick! Va le faire. Cheers, // Hannes – Hannes