J'utilise Google Appengine pour stocker une liste de favoris, reliant un identifiant d'utilisateur Facebook à un ou plusieurs ID de Bing. J'ai besoin d'appels de fonction retournant le nombre d'utilisateurs qui ont favorisé un article, et le nombre de fois qu'un article a été favorisé (et par qui).Relations plusieurs-à-plusieurs dans Google App Engine - efficace?
Ma question est, devrais-je résoudre cette relation dans deux tables pour l'efficacité? Si j'ai une table avec des colonnes pour Facebook ID et Bing ID, je peux facilement utiliser les requêtes select pour les deux fonctions ci-dessus, mais cela nécessitera que chaque ligne soit recherchée dans chaque requête. L'alternative est d'avoir deux tables, une pour les favoris de chaque utilisateur Facebook et l'autre pour les utilisateurs favoris de chaque élément Bing, et d'utiliser des transactions pour les synchroniser. L'option de deux tables a l'avantage de pouvoir utiliser JSON ou CSV dans la base de données de sorte qu'une seule ligne doit être récupérée, et une petite manipulation doit être effectuée pour une API.
Quelle option est la meilleure, en termes d'efficacité et de réduction des coûts?
Merci, Matt
Oui j'ai réfléchi à ça. Bien qu'il soit peut-être plus efficace de le faire dans deux tables, il est certainement plus simple de ne conserver qu'une table, et des choses comme le débogage et la migration sont plus faciles. Après tout, je peux facilement générer les deux tables plus tard si l'efficacité est un problème. Merci :) – Matt