#database-design #amazon-web-services #amazon-simpledb
#проектирование базы данных #amazon-веб-сервисы #amazon-simpledb
Вопрос:
Я новичок в создании приложения, которое позволяет комментировать определенные «статьи». У меня могло бы быть много статей с отдельным комментарием, привязанным конкретно к этой статье.
Я подумываю об использовании SimpleDB (уже настроен и запускает другие компоненты моего приложения). Я бы использовал один домен для хранения всех комментариев по всем статьям и запрашивал этот домен для извлечения соответствующих комментариев, когда это необходимо. Очевидно, что при таком масштабировании мне нужно будет распределить по нескольким доменам. Мне удобно ограничивать комментарии 255 символами или меньше.
Имеет ли это решение смысл? Есть ли какие-либо серьезные недостатки, которые я упускаю?
Спасибо!
Ответ №1:
Стивен, учитывая ограничения, с которыми вы согласны (разделение по доменам позже, когда приложение масштабируется, и ограничение в 255 символов), SimpleDB действительно естественным образом подходит для чего-то подобного. На самом деле, если вас устраивает еще 1 ограничение количества комментариев к статье до 255, вы могли бы сделать это действительно чисто, сохранив следующую структуру в SimpleDB:
itemName | comment1 | comment2 | ... | commentN
-----------------------------------------------
articleID| This is..| I like...| ... | Blahbl..
articleId просто должен быть тем способом, которым вы идентифицируете статьи в вашей системе, чтобы вы могли быстро найти его; затем вы могли бы извлечь элемент со всеми его атрибутами, и у вас были бы все комментарии по порядку для этой статьи.
Если вы хотите изменить порядок (ASC / DESC), вам придется сделать это на уровне приложения, поскольку SimpleDB не будет применять сортировку к вашим атрибутам, а только к списку самих элементов.
Это также поможет сохранить ваш домен более плотным, поэтому запросы будут выполняться быстрее и дольше.
Если вам нужно более 255 комментариев на статью, вы можете разбить их на 1 элемент на комментарий, что-то вроде:
itemName | commentID | commentTest
----------------------------------
articleID| 1 | Ham is gr..
Затем вы можете легко запросить все комментарии к статье и применить порядок сортировки к полю «commentId», если вы хотите, чтобы они были в порядке возрастания или убывания.