我有一个简单的“用例”,想象一下我希望用Xamarin和Azure克隆Facebook应用程序。
看完之后:https://docs.microsoft.com/en-us/azure/cosmos-db/social-media-apps
我注意到我可以将我的数据存储到一组集合/文档(SQL API)中。
但是,当我必须处理数百万个关系时,它不起作用,我必须使用Graph API数据库!
所以,为此,我需要在Azure上创建一个数据库,这是我现在要做的:
1 - 一个Cosmos DB数据库 - 带有SQL API(集合),带有:a)用户集合b)用于发布的集合
2 - 一个Comos数据库数据库 - 使用Gremlin API(图形),其中:a)管理用户和出版物之间关系的图表(即用户A,如出版物B)
因此,SQL API数据库将管理所有记录,而Gremlin将管理所有复合关系。
所以,我有几个问题:1)我真的需要2个未连接的数据库吗?或者这是一个糟糕的设计?因为每次我添加一个用户,我都需要在集合中添加一个文档,还需要一个顶点!这是双重管理!
2)当我将文档插入集合时,它会自动生成带有GUID键的“id”。我可以将此ID用作顶点的键吗?
也许用户和出版物可以具有相同的GUID?所以,在我的图表中,我不知道我的顶点是用户还是出版物?
还有另一种方法来管理这个吗?
谢谢