Я строй интрасети в моей компании.
Мне интересно узнать, как загружать данные, хранящиеся в таблицах (Oracle, MySQL, SQL Server, Excel, Access, различные случайные списки) и загружать их в Neo4J или в какую-либо другую базу данных графов. В частности, что происходит, когда общие данные перекрывают существующие данные уже в системе.
Да, я знаю, что некоторые данные лучше всего моделируются в СУБД, но мне кажется, что эта идея меня раздражает, когда вам нужно наложить несколько отдельных таблиц, модель графа лучше, чем структура таблицы.
Например, я работаю в производственной среде. Существует крупный проект, над которым мы работаем, и из-за сложности каждый отдел создал отдельную электронную таблицу Excel, которая имеет иерархию BOM (Bill Of Materials) в столбце слева, а затем несколько столбцов заметок и проверок, сделанных лицами, которые делали эти листы.
Таким образом, одна из проблем заключается в объединении всех этих заметок вместе в один «вид», чтобы кто-то мог видеть все проблемы, которые необходимо решить в какой-либо конкретной части.
Вторая проблема заключается в том, что таблица Excel всасывает представление иерархической спецификации, когда общий компонент используется более чем в одном подсборке. Это означает, что если кто-то пишет записку о реле P34 в сборочном узле, то такой же комментарий должен быть связан с реле P34, используемым в сборочном узле двигателя. Это не произойдет в электронной таблице Excel.
Для интрасети компании я хочу, чтобы иметь возможность легко найти что угодно. Например, данные, относящиеся к номеру детали, структуре спецификации, номеру телефона, адресу электронной почты, политике компании или процедуре. Я хочу еще расширить это, чтобы управлять ресурсами компьютерного оборудования и установленным программным обеспечением.
Я предполагаю, что после того, как информационная сеть начнет заполняться, вы можете начать делать крутые обходы, такие как «Я хочу написать электронное письмо всем, кто работает над проектом XYZ». Люди будут связаны с проектом, потому что они будут помечены как создание и изменение данных в проекте XYZ. Таким образом, используя проект XYZ в качестве ключа поиска, будет создан огромный набор со всем, что связано с проектом XYZ. Включая ссылки на людей, которые построили проект XYZ. Ссылки для людей будут подключаться к их адресам электронной почты. Поэтому, участвуя в проекте XYZ, они будут включены в мой адрес электронной почты. Это резко контрастирует с некоторыми секретарями, пытающимися сохранить список людей, работающих над проектом. Мы генерируем много списков. Мы тратим много времени на ведение списков и обеспечение их актуальности. И большая часть этого не добавляет никакой ценности нашим продуктам.
Еще один крутой обход может сообщить обо всех компьютерах, на которых установлена определенная часть программного обеспечения, по версии. Этот отчет может использоваться для создания задач для удаления дополнительных копий старого программного обеспечения и для обновления людей, которым требуется последняя копия. Это также было бы полезно для отслеживания лицензий.
Отличный ответ и +1 для «попробуйте не создавать собственный движок базы данных самостоятельно, если вам не нравится создание двигателей баз данных», rotfl –