1

最近我一直在玩 RavenDB。我专门测试了它从 MySQL 数据库导入的能力,在这种情况下是 Northwind 数据集(具体来说,从这个链接提供的数据集:https ://github.com/dalers/mywind )

在 RavenStudio 中,我决定将 SQL(本地 MySQL 数据库)导入 RavenDB。唯一没有作为自己的集合导入的表是employee_privileges 表。相反,它作为属性(键值对)存在于相关文档中。我只是好奇这是为什么?

当我通过 MySQL 查询employee_privileges 表时,我收到以下结果集:

MariaDB [northwind]> select * from employee_privileges;
+-------------+--------------+
| employee_id | privilege_id |
+-------------+--------------+
|           2 |            2 |
+-------------+--------------+
1 row in set (0.00 sec)

对此的任何见解将不胜感激!

4

1 回答 1

0

NoSQL 数据模型允许嵌套数组/对象。在 SQL 中,它呈现为附加表。在某些情况下,这样的表不是自然的,它是为了满足第三范式而创建的。在您的示例中,employee_privileges 被嵌入。它解决了选择 n+1 问题。您可以将其保留为集合而不是嵌入它。在下一页上查找更多信息。

https://ravendb.net/docs/article-page/4.2/Csharp/studio/database/tasks/import-data/import-from-sql#import-from-sql

于 2019-09-23T09:04:11.383 回答