Импорт RavenDB Northwind из SQL - Почему employee_privileges не предоставляется коллекция? - PullRequest
1 голос
/ 21 сентября 2019

Недавно я играл с RavenDB.Я специально тестировал его способность импортировать из базы данных MySQL, в данном случае набор данных Northwind (в частности, набор данных, предоставленный по этой ссылке: https://github.com/dalers/mywind)

В RavenStudio я решил импортировать из SQL (локальной базы данных MySQL) в RavenDB. Единственной таблицей, которая не была импортирована как собственная коллекция, была таблица employee_privileges. Вместо этого она существует как свойство (пара ключ-значение) в соответствующих документах. Мне просто любопытно узнать причинупочему?

Когда я запрашиваю таблицу employee_privileges через MySQL, я получаю следующий набор результатов:

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

Любое понимание этого очень приветствуется!

1 Ответ

0 голосов
/ 23 сентября 2019

Модель данных NoSQL допускает вложенные массивы / объекты.В SQL это представляется как дополнительная таблица.В некоторых случаях такая таблица не является естественной, и она создается для удовлетворения 3-й нормальной формы.В вашем примере employee_privileges встраивается.Это решает проблему выбора n + 1.Вы можете оставить это как коллекцию вместо того, чтобы вложить это.Более подробную информацию можно найти на следующей странице.

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

...