0

Я занимаюсь разработкой одного сайта социальной сети. Прямо сейчас я использую mysql для хранения данных. Теперь мне нужно переместить базу данных nosql (я предпочитаю ElasticCache или DynamoDb (услуга amazon)). Но я запутался в моделировании данных. В mysql у меня есть следующая структура данных.Моделирование данных для базы данных nosql для сайта социальных сетей

***UserMst:*** 
UserID 
UserName 
UserEMail 
BirthDate 
..... 

***FriendMst*** 

FriendID (Pk)  
UserID  (UserID) 
HisFriendID (User's friend id) 
Status   

***Notification table*** 

NotifyID (Pk) 
UserID  (UserID) 
HisFriendID (User's friend id) 
NotifyDate (Notify date) 

Как это сделать для базы данных nosql? может кто-нибудь мне помочь?

ответ

1

NOSQL - это набор различных платформ данных, поэтому он зависит от того, какой вы выбираете. Вы указали DynamoDb и ElasticCache, который поддерживает Memcached и Redis. Вы в основном имеете дело с магазинами с ключевыми знаками, а один из способов поддержать ваш прецедент с хранилищем значений ключей:

1) Имейте документ-подобную структуру для пользователя, сравнимую с ключом UserID и набором полей, которые примерно одинаковы между документами: имя пользователя, адрес электронной почты и т. д. Это будет таблица в DynamoDb, документ в MongoDB или статическое семейство столбцов в Cassandra.

2) Ваш FriendMst будет сохранен как ключ UserID и массив элементов с FriendUserID и статусом. С помощью базы данных документов, такой как MongoDB, это может быть встроено в документ пользователя или сохранено в соответствующем документе. В Кассандре это может быть динамическое семейство столбцов. Что-то подобное может работать для уведомлений, зависит от ваших вариантов использования запроса.

Сказав все это, было бы неплохо рассмотреть базу данных графа, такую ​​как Neo4J. Они были разработаны специально для подобных случаев использования в сети и могут легко возвращать друзей друзей или находить уведомления ваших друзей или оценивать рекомендации друзей и их друзей и т. Д.

 Смежные вопросы

  • Нет связанных вопросов^_^