
Actualmente estoy creando una aplicación web para una plataforma de publicación y estoy usando S3 para el almacenamiento de contenido. S3 es muy fácil de usar, pero me gustaría intentar organizar los archivos de la mejor manera posible desde el principio.
Aquí hay una idea de la forma de mis datos:
Publicaciones
- Las publicaciones tienen descripciones (texto)
- Introducción (texto + imágenes)
- Discusión (texto + imágenes)
- tener muchos experimentos
experimentos
- Los experimentos tienen descripciones (texto)
- Resultados (texto + imágenes)
- Métodos (texto + imágenes)
- Discusión (texto + imágenes)
Modelos organizacionales
Modelo n.º 1: cubos planos
Este modelo parece obviamente malo, pero lo incluyo para que esté completo.
Cubo de imágenes de publicación:
publication_images/[publication-id]-[name].png
Grupo de texto de publicación:
publication_text/[publication-id]-[name].txt
Cubos de experimentos iguales que los anteriores
Modelo #2: Objetos de publicación/experimento
Cubo de publicaciones:
[publication-id]/text/[name].txt
[publication-id]/images/[name].png
El cubo de experimentos es análogo.
Modelo n.° 3: experimentos dentro de publicaciones
Cubo de publicaciones:
[publication-id]/text/[name].txt
[publication-id]/images/[name].png
[publication-id]/experiments/[experiment_id]/images/[name].png
[publication-id]/experiments/[experiment_id]/text/[name].txt
Modelo #4/5: Publicaciones/Experimentos obtienen sus propios cubos
Esto es esencialmente lo mismo que los puntos 2 y 3 anteriores, excepto que en lugar de que cada publicación o experimento sea un objeto en un depósito de publicaciones o experimentos, obtendría su propio depósito. En realidad, esta no parece ser la forma en que se hacen las cosas, pero soy un principiante con S3, por lo que podría estar equivocado.
Definitivamente hay otras formas de organizar esto, pero estas son las principales que se me han ocurrido. Me inclino por el modelo 2 o 3, dependiendo de si quiero recuperar todo el contenido de mi experimento con la publicación o no. Dicho esto, ¿alguno de estos modelos parece obviamente superior o inferior a alguien con más experiencia? ¿Existen compensaciones que debo tener en cuenta y considerar ahora al planificar el futuro? ¿Hay otros modelos que serían mejores en cuanto a rendimiento y/o claridad y que he pasado por alto?
¡Gracias!