J'ai besoin d'un système de marquage simple dans GAE-J. Comme je le vois, l'entité qui est étiquetée devrait avoir une collection de clés se référant aux étiquettes auxquelles elle est associée.Conception pour le système de marquage dans GAE-J
Une entité de balise doit simplement contenir la chaîne de balises elle-même et un ensemble de clés pointant vers les entités associées à la balise. Lorsque la liste de variables d'une entité est modifiée, le système crée une nouvelle étiquette si la balise est inconnue, puis ajoute la clé de l'entité à la collection de clés de cette balise. Si le tag existe déjà, la clé de l'entité est simplement ajoutée à la collection de clés du tag.
Cela me semble relativement simple et sans controverse, mais j'aimerais avoir des commentaires sur cette conception, juste pour être sûr.
C'est généralement la meilleure approche. Pour garder une trace de l'ensemble des étiquettes uniques (et des fréquences, etc.), vous pouvez en outre avoir un modèle de Tags que vous mettez à jour de manière synchrone, mais séparément. –
Je suppose que la principale raison pour laquelle j'ai pensé à cette approche est que je pourrais avoir un grand nombre d'entités, 6 ou 7 chiffres, et elles ne seront pas dans le même groupe d'entités. Ainsi, j'ai pensé que la requête ci-dessus pouvait être extrêmement coûteuse. Avec les entités de balises, quel que soit le nombre de résultats de recherche que je possède, je ne récupérerais que le couple d'entités de balises. Ensuite, je pourrais récupérer les entites marquées par leurs clés, au lieu d'avoir à les rechercher. J'ai supposé que la récupération par clé serait beaucoup plus rapide, mais je dois admettre que ma compréhension de la banque de données laisse à désirer ... – tempy