NoSQL DB中如何设计tables/entities?
How to design the tables/entities in NoSQL DB?
我在 NoSQL 数据库中迈出了第一步,因此我想听听有关实现以下要求的最佳实践。
假设我有一个由 MongoDB 引擎提供支持的消息数据库。此数据库包含文档集合,其中每个文档都有以下字段:
- 时间戳;
- 留言author/source;
- 留言内容。
现在,我想构建一个 authors/sources 的列表,以便添加关于每个源的一些元数据。在经典 RDBMS 的情况下,我会定义一个 table tblSources
来存储消息源的名称和所有附加元数据(或相关 table 的链接) 对于每个作者。我的问题是在 NoSQL/MongoDB 世界中完成此类任务的正确方法是什么?
这实际上取决于您要如何使用数据。 NoSQL 数据库通常在设计时并未考虑快速连接,但它们仍然能够进行连接和存储外键。
你的选择真的很
- 重复数据也就是在每个文档中存储作者元数据。在您真正尝试优化查找并使用 Mongo 作为键值存储
的情况下,这可能会更好
- 加入外键 - 这与您使用 RDBMS 的方式非常相似
我在 NoSQL 数据库中迈出了第一步,因此我想听听有关实现以下要求的最佳实践。
假设我有一个由 MongoDB 引擎提供支持的消息数据库。此数据库包含文档集合,其中每个文档都有以下字段:
- 时间戳;
- 留言author/source;
- 留言内容。
现在,我想构建一个 authors/sources 的列表,以便添加关于每个源的一些元数据。在经典 RDBMS 的情况下,我会定义一个 table tblSources
来存储消息源的名称和所有附加元数据(或相关 table 的链接) 对于每个作者。我的问题是在 NoSQL/MongoDB 世界中完成此类任务的正确方法是什么?
这实际上取决于您要如何使用数据。 NoSQL 数据库通常在设计时并未考虑快速连接,但它们仍然能够进行连接和存储外键。
你的选择真的很
- 重复数据也就是在每个文档中存储作者元数据。在您真正尝试优化查找并使用 Mongo 作为键值存储 的情况下,这可能会更好
- 加入外键 - 这与您使用 RDBMS 的方式非常相似