2014-01-21 2 views
2

В моей системе у меня есть реляционная таблица БД с столбцами «id», и я представляю некоторые из тех же данных в Neo4J.Является ли хорошей практикой использование атрибута id в Neo4J?

Мой первый подход заключается в создании атрибута «id» в Neo, который коррелирует с столбцом id.

Есть ли причина, по которой это не является хорошей практикой? Означает ли это конфликт технически или концептуально с идентификаторами узлов, которые генерирует Нео?

ответ

4

Если идентификаторы служат для уникального отличия узлов, которые будут генерироваться, тогда да, его хорошо иметь.

Но имейте в виду, что если ваш график вырастет в будущем и скажет, что ситуация приходит к тому, что другая таблица БД должна быть смоделирована в граф, и, как бы то ни было, скажем, что некоторые идентификаторы в новой таблице таблицы конфликтуют со старой таблицей БД то в этой ситуации вы столкнетесь с проблемой сохранения уникальности узла.

Идентификаторы узлов, которые генерируются neo4j, рекомендуется не использовать, поскольку они подвержены повторному использованию в случае удаления узлов.

В случае, если вы просто хотите смоделировать таблицу DB в базе данных графов и не хотите позже связывать данные графа с вашей таблицей db, вы можете использовать UUID.randomUUID(). ToString() для генерации случайных уникальных UUID (с меньшей вероятностью дублирования UUID) для идентификаторов узлов.

+0

относительно идентификаторов из разных таблиц: я использую neo4j 2 с ярлыками, поэтому я использую другую метку в таблице –

+0

cool thats nice! то сохранение идентификаторов, похожих на идентификатор таблицы БД, не вызовет каких-либо проблем, так как комбинация ярлыков и идентификаторов всегда будет отличаться! –

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