我有一个简单的“用例”,想象一下我希望用 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 DB 数据库 - 使用 Gremlin API (Graph),其中:a) 用于管理用户与出版物之间关系的图表(即,用户 A 喜欢出版物 B)
因此,SQL API 数据库将管理所有记录,而 Gremlin 数据库将管理所有复合关系。
所以,我有几个问题:1)我真的需要 2 个未连接的数据库吗?或者这是一个糟糕的设计?因为每次添加用户,都需要在集合中添加一个文档,还要添加一个顶点!这是双重管理!
2)当我将文档插入集合时,它会自动生成一个带有 GUID 键的“id”。我可以使用这个 ID 作为我的顶点的键吗?
也许用户和出版物可以具有相同的 GUID?所以,在我的图中,我不知道我的顶点是用户还是出版物?
还有另一种方法来管理这个吗?
谢谢