La conception de BigTable rejette de nombreuses philosophies des modèles relationnels standard, préférant explicitement la dénormalisation à un grand nombre de petites tables.
L'un des domaines les plus vastes où cela pose problème est la modélisation de plusieurs à plusieurs jointures.
Une façon de modéliser ces jointures consiste à violer la première forme normale et à placer toutes les données intéressantes dans une db.ListProperty (). Bien que cela puisse être recherché à partir d'une requête, je n'ai pas encore exploré les implications en termes de performances de la recherche dans une liste par rapport à l'extraction d'une autre table.
Comme les jointures ne sont pas possibles, il est possible de lier des tables via RelationshipProperties. Par conséquent, avec suffisamment d'effort, la table d'intersection standard (une table avec une clé primaire conjointe qui fait référence aux deux tables parentes) peut être créée. Quelqu'un a-t-il exploré les résultats de performance des différentes implémentations?
-Éditer-
Bien que la liste des clés suggérée dans la documentation soit en effet une façon de le faire, je suis intéressé par les performances et les taux d'anomalies de cela et d'autres implémentations. Est-il utile de créer des listes mutuelles de clés? L'effort impliqué dans les répétitions en vaut-il le prix? Y a-t-il une meilleure façon de le faire?