Viniendo de un mundo Relacional, las cosas son obviamente muy diferentes con el almacenamiento de Azure Table. La primera gran cosa con la que me he encontrado es cómo almacenar correctamente las relaciones de muchos a muchos.¿Cómo guardo correctamente las relaciones de datos con Microsoft Azure Table Storage?
Por ejemplo, puedo tener un sistema que realiza un seguimiento de los usuarios y libros que poseen. Encontré otra publicación aquí en SO que sugería tener una propiedad de cadena en el usuario que básicamente almacenaba una lista de las identificaciones de libros que poseía el usuario. Si bien entiendo que a veces esta es una forma aceptada de almacenar datos, el problema es que Azure solo le permite almacenar 64 KB de datos en una Cadena. Eso definitivamente pone un límite a la cantidad de libros que un usuario podría poseer.
Otra posible solución es tener datos duplicados. Es posible que tenga una tabla que almacena todos los libros conocidos en el sistema. Pero cuando un usuario necesita estar asociado con un libro, copio los datos del libro en una tabla diferente llamada OwnedBooks que, en esencia, es exactamente igual a la tabla de libros, excepto que también tiene una propiedad OwnedByUserID.
¿Hay otras posibles soluciones?
Además de este problema, ¿alguien tiene alguna sugerencia buena para otros patrones y prácticas al utilizar el almacenamiento de tablas Azure?
¡Respuesta fantástica, gracias! – Vyrotek
La opción de la opción 2, parece que sería bastante barata a pesar de su inconveniente. Como solo costó $ 0.01 por cada 100 000 transacciones. Cada transacción es una consulta al almacenamiento ¿no? Así que cambiar el título de un libro solo incurriría en una consulta, y luego cada entidad encontrada se actualizará en la tabla. Pero depende de la cantidad de datos que está actualizando. Pero si las actualizaciones son escasas, entonces está bien. ¿No es así? – starcorn