Задать вопрос
Serhioromano
@Serhioromano
Web Developer

Как правильно сохранить рейтинг статьи в не структурированой базе данных?

Я только недавно стал пользоваться данными решениями. Давно хотел, но все не было проекта где можно было бы с ними поиграть. Ну вот теперь есть.

У меня такая проблема. Я не хочу переносить свой опыт с RDBM на NoSQL. Не хочу пытаться воспроизвести на Монго тоже что я длелал на MySQL. И вот как пример концепта такой вопрос.

Есть статья и есть ее рейтинги. У статьи может быть ну максимум 1000 рейтингов а в средем 100. Рейтинг это

{
   "value": 20,
   "user": new MongoId(),
   "ip": "120.120.120.120",
   "time": 123235656,
}


Я вижу несколько способов сохранить.

1. В стиле RDBM - это когда у меня 2-е колекции. В одной сохраняю статьи в другой рейтинги и в рейтенге ссылка на статью

2. Это тоже в разных коллекциях но немного по другому. Этот способ считаю возможнет только в NoSQL базах. Его можно воспроизвести на RDBM но так ни кто не делает. Это когда ссылка на рейтинг пишется не в рейтинге а в статье.

{
   "name" : "Title",
   "ratings: [
      Object("ksdj7sdf7s8sd76gsdfd09g8h9f8gh"),
      Object("ls78f0gh9gf0vbfx7x8v7c9v8b78c")
   ]
}


3. Ну и 3й способ это если просо польностью ретинг сохранять в документе статьи. Всего одна коллекция.

Какой подход был бы наиболее правильным?
  • Вопрос задан
  • 2639 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Nc_Soft
Вот не понимаю этих nosql баз: рейтинг относится к статье, тут типичная реляционная модель.
Адепты этих баз скорее всего посоветуют вариант три, как же без перемешивания мух и котлет )
Ответ написан
@Arik
По-моему с любой базой желательно держаться правила: хранить отдельно что часто меняется и что меняется редко. Тем более если часто меняющие данные не так страшно потерять полностью или частично.
По опыту с noSQL, не надо все ложить в одну коллекцию и тем более в одну запись, так можно весь сайт уложить - огромный такой массив. Все равно что вам дали наконец большой мешок и ложите туда и еду, и носки, и молоко.
nosql очень помогает когда есть какое-то понятие, но все свойства до конца не ясны. Допустим, объявления. Eсть много рубрик и в каждой рубрике свои параметры. NoSQL прекрасно хранит любой набор параметров и может по ним делать выборку (привет MySQL с сериализованными данными).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы