2016-02-16 2 views
2

Я думаю, что ссылочное отношение - одна запись имеет свойство, значение которого является идентификатором записи другой записи, в то же время внешний ключ состоит в том, что одна запись имеет первичный ключ другой записи. Почему doc2.1.x подчеркивают, что ссылочное отношение избегает дорогостоящей операции join?Разница между ссылочным отношением и внешним ключом?

ответ

1

OrientDB управляет отношениями как физические ссылки на записи, назначенные только один раз при создании ребра. OrientDB не использует JOIN. Вместо этого используйте ссылки, у которых есть отношения, управляемые путем хранения целевой RID в источнике записи. Это очень похоже на сохранение указателя между двумя объектами в памяти. Кромка соединяет две вершины и должна иметь: уникальный идентификатор, соединяющий вершину, вершину исходящей линии и метку, определяющую тип соединения.

Это небольшой пример:

enter image description here

Надеется, что это помогает

+0

Я считаю, что использовать первичный ключ в качестве внешнего ключа, то 'join' операция будет использовать индекс для запроса ссылочных записей. По этой причине это не будет стоить слишком много времени по сравнению с RID. –

+0

Дополнительные данные у вас есть, чем медленнее реагирует база данных, а операции JOIN имеют тяжелую рабочую среду. OrientDB использует LINK. Взгляните на эту ссылку: http://orientdb.com/docs/2.1/Tutorial-Relationships.html#understanding-join –

Смежные вопросы