
В настоящее время я создаю веб-приложение для платформы публикации и использую S3 для хранения контента. S3 очень прост в использовании, но я хотел бы попробовать сделать наилучшую возможную организацию файлов заранее.
Вот представление о форме моих данных:
Публикации
- Публикации имеют описания (текст)
- Введение (текст + изображения)
- Обсуждение (текст + изображения)
- есть много экспериментов
Эксперименты
- Эксперименты имеют описания (текст)
- Результаты (текст + изображения)
- Методы (текст + изображения)
- Обсуждение (текст + изображения)
Организационные модели
Модель №1: Плоские ковши
Эта модель, очевидно, плохая, но я включил ее для полноты картины.
Публикация изображений Корзина:
publication_images/[publication-id]-[name].png
Публикация Текстового раздела:
publication_text/[publication-id]-[name].txt
Экспериментальные ведра те же, что и выше
Модель №2: Объекты публикации/эксперимента
Публикации:
[publication-id]/text/[name].txt
[publication-id]/images/[name].png
Ведро экспериментов аналогично
Модель №3: Эксперименты в публикациях
Публикации:
[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
Модель № 4/5: Публикации/Эксперименты получают свои собственные сегменты
По сути, это то же самое, что #2 и #3 выше, за исключением того, что вместо того, чтобы каждая публикация или эксперимент были объектом в корзине публикаций или экспериментов, они получат свою собственную корзину. На самом деле это не похоже на то, как все делается, но я новичок в S3, так что могу ошибаться.
Определенно есть и другие способы организовать это, но вот основные, которые я придумал. Я склоняюсь к модели № 2 или № 3, в зависимости от того, хочу ли я извлечь весь свой экспериментальный контент с публикацией или нет. При этом, выглядит ли какая-либо из этих моделей явно лучше или хуже, чем у кого-либо с большим опытом? Есть ли компромиссы, о которых мне следует знать и которые я должен учитывать сейчас при планировании будущего? Есть ли другие модели, которые были бы лучше с точки зрения производительности и/или ясности, которые я упустил из виду?
Спасибо!