Я собираю простой форум, чтобы окунуться в базу данных документов, думая, что это будет относительно прямолинейно моделировать.
У меня возникли проблемы с выяснением, как именно должны храниться документы. В настоящее время использую RavenDB, но я полагаю, что это будет похоже на другой документ. дБ.
Таким образом, в основном есть Forums
, и на каждом форуме есть группа Threads
, и каждая ветка содержит группу Posts
, автором которых является Users
.
В моей голове я представил себе, что каждый из них должен быть отдельным документом, главным образом потому, что каждый Forum
может иметь тысячи Threads
, а каждый Thread
может иметь тысячи Posts
. Кажется, что наличие нечетких документов приведет к тому, что они со временем станут массовыми?
При просмотре страницы со списком всех Posts
я хочу отобразить имя Author
(ничего страшного) и количество сообщений Author
. Вот где я застрял.
Я могу сохранить имя Author
в сообщении, так как оно вряд ли изменится, однако количество сообщений Author
будет постоянно меняться, поэтому его нельзя сохранить в файле Post
.
Итак, теперь, если я показываю страницу с 50 сообщениями, мне нужно выполнить реляционный эквивалент соединения, чтобы получить текущее количество сообщений Author
. Это указывает мне, что я делаю это неправильно, если только база данных документов не подходит для этого сценария?
Редактировать
Похоже на Live Projections в RavenDB должны с этим справиться, но я все же хотел бы оставить некоторые комментарии о возможных альтернативных схемах БД.