У меня есть база данных, в которой есть два «Контейнера», один для «Пользователей» и другой для «Сообщений»:
Пользователи:
{
id: 1,
name: "Peter"
},
{
id: 2,
name: "Paul"
}
Сообщения:
{
id: 1,
title: "My First post"
authorId : 1
},
{
id: 2,
title: "My Second post"
authorId : 1
}
Если пользователь хочет опубликовать сообщение, значит, пользователю 2 нравится сообщение 1, где должна сохраняться эта база данных? Нужно ли обновлять элемент Post, чтобы сохранить ссылку на то, кому нравится этот пост в массиве? Если так, что происходит, когда миллионам людей нравится этот пост?
{
id: 1,
title: "My First post"
authorId : 1,
usersWhoLikeThis: [2,130,2341]
},
Должны ли эти данные храниться в данных пользователя, например:
{
id: 2,
name: "Paul",
postsILike: [1,15,82,800]
}
Или эта информация должна храниться отдельно? Контейнер:
Любит:
{
id: 1,
userId: 2,
postId: 1
},
{
id: 2,
userId: 2,
postId: 2
}
Но это будет означать, что мне придется запросить эту базу данных дважды, один раз, чтобы получить список сообщений, а затем второй запрос. чтобы получить список лайков для пользователя и работать с двумя наборами данных и проверить набор данных «лайков» для каждого postId, чтобы увидеть, существует ли он.
Есть ли у кого-нибудь какие-либо советы или примеры о наилучшем способе хранить такие данные?
Большое спасибо