Database design 社交网站nosql数据库的数据建模
我正在开发一个社交网站。现在我正在使用mysql进行数据存储。 现在我不得不转向nosql数据库(我更喜欢ElasticCache或DynamoDb(amazon服务))。但我对数据建模感到困惑。在mysql中,我有以下数据结构Database design 社交网站nosql数据库的数据建模,database-design,amazon-dynamodb,datamodel,data-modeling,amazon-elasticache,Database Design,Amazon Dynamodb,Datamodel,Data Modeling,Amazon Elasticache,我正在开发一个社交网站。现在我正在使用mysql进行数据存储。 现在我不得不转向nosql数据库(我更喜欢ElasticCache或DynamoDb(amazon服务))。但我对数据建模感到困惑。在mysql中,我有以下数据结构 ***UserMst:*** UserID UserName UserEMail BirthDate ..... ***FriendMst*** FriendID (Pk) UserID (UserID) HisFriendID (User'
***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数据库建模?有人能帮我吗?NOSQL是不同数据平台的集合,因此它取决于您选择的平台。您已经指定了DynamoDb和支持Memcached和Redis的ElasticCache。您基本上是在处理键值存储,使用键值存储支持您的用例的一种方法是: 1) 为用户提供一个类似文档的结构,类似于一个UserID键和一组文档间大致相似的字段:用户名、电子邮件等。这可能是DynamoDb中的一个表、MongoDB中的一个文档或Cassandra中的一个静态列族 2) 您的FriendMst将保存为一个UserID键和一个带有FriendUserID和status的项目数组。对于像MongoDB这样的文档数据库,可以将其嵌入用户文档或存储在相关文档中。在Cassandra中,这可能是一个动态柱族。根据您的查询用例,类似的方法可能适用于通知
已经说过了,考虑像NeN4J这样的图形数据库可能是好的。它们是专门为这类网络用例设计的,可以很容易地返回朋友的朋友,或查找朋友的通知,或对朋友及其朋友的推荐进行排名,等等