importante
El diseño NoSQL requiere un modo de pensar distinto al diseño de RDBMS. En un sistema RDBMS, puede crear un modelo de datos normalizados sin pensar en los patrones de acceso. Posteriormente, podrá ampliar este modelo cuando surjan nuevos requisitos sobre preguntas y consultas. Por el contrario, en Amazon DynamoDB, no debe empezar a diseñar su esquema hasta que no sepa las preguntas que debe responder. Es absolutamente esencial conocer los problemas del negocio y los costos iniciales de los casos de uso de la aplicación.
Si desea comenzar a diseñar una tabla de DynamoDB que escale efectivamente, debe realizar primero varios pasos para identificar los patrones de acceso requeridos por los sistemas de ayuda de operaciones y de la actividad (OSS/BSS) que deben admitirse:
En el caso de las nuevas aplicaciones, revise los casos de usuario para determinar las actividades y los objetivos. Documente los diferentes casos de uso que ha identificado y analice los patrones de acceso que requieren.
En las aplicaciones existentes, analice los registros de consultas para saber cuántas personas utilizan actualmente el sistema y cuáles son los patrones de acceso de claves.
Tras completar este proceso, debería tener una lista similar a la siguiente:

En una aplicación real, la lista podría ser mucho más larga. Sin embargo, esta colección representa el rango de complejidad de los patrones de consulta que podría encontrar en un entorno de producción.
Un enfoque que suele utilizarse habitualmente para diseñar esquemas de DynamoDB es identificar las entidades de la capa de la aplicación y utilizar la desnormalización y la agregación de claves compuestas para reducir la complejidad de las consultas.
En DynamoDB, esto implica el uso de claves de ordenación complejas, índices secundarios globales sobrecargados, tablas o índices particionados y otros patrones de diseño. Puede utilizar estos elementos para estructurar los datos de forma que una aplicación pueda recuperar todo aquello que necesite para un determinado patrón de acceso realizando una sola consulta en una tabla o índice. El principal patrón que puede utilizar para modelar el esquema normalizado que se muestra en Modelos relacionales es el patrón de lista de adyacencia. Otros de los patrones que se pueden utilizar en este diseño son la fragmentación de escrituras en índices secundarios globales, la sobrecarga de índices secundarios globales, las claves complejas y las agregaciones materializadas.
importante
Por lo general, en una aplicación de DynamoDB, es necesario mantener la menor cantidad de tablas posible. Puede haber excepciones, como los casos en los que hay implicados datos de serie temporal de gran volumen o conjuntos de datos que tienen diferentes patrones de acceso. Normalmente, basta una sola tabla con índices invertidos para permitir que, a través de consultas simples, se creen y recuperen las estructuras de datos jerárquicas y complejas que necesita la aplicación.
Para utilizar NoSQL Workbench para DynamoDB como ayuda para visualizar su diseño de clave de partición, consulte Creación de modelos de datos con NoSQL Workbench.