Какую базу данных выбрать и как лучше организовать хранение данных?
Подскажите какую базу данных выбрать и как лучше организовать хранение?
Делаю приложение для изучения слов. В базе будет набор примерно из 10к слов. Для каждого изучаемого пользователем слова будет формироваться статистика - сколько раз верно угадал слово, сколько неверно и т.д.. Итак получается, если скажем будет 10к юзеров и у каждого будет список из 500 изучаемых слов, то получится 5 миллионов записей. Я думаю, что лучшим вариантом будет использовать NoSql и список слов хранить в документе пользователя.
Также интересно, как реализовано хранение в todo листах. Там принцип тот же, у пользователя может быть очень много всяких тасков, которые еще и сгруппированы по личным категориям пользователя.. Но если хранить таски как я написал выше, то я так понимаю ими будет проблематично делиться с другими пользователями, так как они будут не отдельными документами. Но не думаю, что их хранят в отдельной коллекции или в таблице реляционной базы.
Вообщем, подскажите как лучше быть в этих обоих случаях.
Что manyToMany это понятно, но это будут личные данные пользователя.. Есть ли смысл делать огромную таблицу для них, если никогда не будут использоваться другими юзерами? И цифры же приблизительные. Если пользователей будет 100к и слов по 1к, то уже 100 лямов получится. При чем эта таблица будет довольно часто использоваться..
sim3x, переделывать потом все очень проблематично будет, поэтому сразу хочу чтобы при большом кол-ве пользователей все нормально работало. Структура таблицы то понятна. Но меня смущает, что записи, которые нужны только владельцу по сути будут перемешаны в одной таблице, это как то бредово. А что думаете о том, чтобы взять postgres, сделать таблицу, в которой каждому юзеру будет создаваться запись, а в этой записе в поле words к примеру хранить в json статистику по словам? Мне кажется это более разумно
Wentixon,
Забудьте про методику "я один раз нормально спроектирую и потом не буде менять"
Так не бывает
Юзеры думают не так как вы
А вы делате софт не для себя, а для юзеров
А что думаете о том, чтобы взять postgres, сделать таблицу, в которой каждому юзеру будет создаваться запись, а в этой записе в поле words к примеру хранить в json статистику по словам?
можно. Если не смущает, что руками придется работать с большими словарями в своем ЯП