Я читаю вещи о NoSQL. Я знаю, что это не основано на отношениях, но я не могу понять, как сделать некоторые основные вещи. (И я не нашел реального кода примера об этом).Пример планов NoSQL
Я хочу хранить пользователей, сообщения и комментарии.
SQL Версия:
user's table: user_id, username
posts's table: post_id, user_id, content
comments's table: comment_id, content
Ok, просто.
В NoSQL, что я подготовил это (100% функциональный, я не использую любые технологии, такие как MongoDB и т.д. в настоящее время):
users:
{
id: XX,
username: "John"
},
{
id: OO,
username: "Mike"
}
posts:
{
id: YY,
content: "How are you all ?",
user: {
id: OO,
username: "Mike"
},
comments: {
id: ZZ,
content: "Fine",
user: {
id: XX,
username: "John"
}
}
}
Я мог бы хранить идентификатор пользователя в постах и комментариях на месте всего пользователя, но я использую NoSQL, а не SQL, поэтому я этого не делаю.
Во-первых? Является ли эта модель данных прекрасной для NoSQL?
Во-вторых, если да для предыдущего вопроса, что, если пользователь XX (Джон) изменит свое имя пользователя для «Тони»? Потенциально мне придется обновлять все сообщения от него, и то же самое для каждого комментария?! Представим себе, что он опубликовал в течение своей жизни пользователя, 10 000+ комментариев, wtf. Поэтому я предполагаю, что я делаю это неправильно.
Можете ли вы прояснить мои заблуждения?
Вы понимаете, что NoSQL просто означает «не SQL», правильно? Нет стандартизованного синтаксиса NoSQL, поэтому все зависит от используемой вами базы данных. То, что вы публикуете, - это нечто похожее на объект JavaScript. –
Хранилища данных NoSQL (Cassandra и т. Д.) Обычно являются магазинами с ключевыми значениями. Таким образом, в вашем случае, возможно, ключ будет идентификатором пользователя, а затем да, вам нужно будет найти способ справиться с блоком JSON, на который он указывает. –