Я играю с orientdb довольно давно. В большинстве моих проектов я имею дело с данными ГИС и ITS из сетей трафика ... поэтому я подумал, что будет лучшим хранилищем данных для реального мира, чем графовая база данных?Основы моделирования графических данных
Итак, я написал сценарий python для переноса графика мультимодальной сети трафика из реляционной базы данных в orientdb. Базовый datamodel (узлы/узлы сети трафика и пути/пути) прост, и я также воспользовался пространственными типами ориентации eastdbs, чтобы фактически сохранить их представление в реальном мире. Но теперь мне становится трудно понять принципы правильного построения графических данных.
В реальном мире узлы/пересечения не очень интересны ... большинство свойств расположены по краям (тип пути, полосы, ширина и т. Д.). В графическом datamodel граф используется для связывания объектов, поэтому узлы несут большинство свойств, а ребра - только для связывания узлов друг с другом.
Как бы вы правильно моделировали график сети реального мира в графической модели данных и, в частности, как бы вы моделировали такие аспекты, как полоса или покрытие улицы, к краю сетевых графиков.
P.S. Дорожки и свойства ребра должны быть их собственными классами, так как они должны быть привязаны только к краю сетевых графиков, поскольку кромка может нести несколько типов трафика (поезда, улицы, дорожки, велосипеды и т. Д.)
Тип пути, полосы, ширина - все свойства объекта, а в базе данных графа объект - это вершина –
Хорошо. В нашей текущей реляционной модели данных также есть велосипедная дорожка (которая является сущностью самостоятельно со свойствами для соответствующих аспектов велосипеда, таких как ширина и тротуар) имеет свое собственное представление в реальном мире, поскольку оно происходит только от геометрии кромок сетей. Таким образом, это будет вершина велосипедной дорожки, которая содержит свойство OLineString для хранения представления реального мира и связано с краем сети трафика через край Orientb? Возможно ли это? Связать Edge с вершиной через Edge? Правильно ли я понял? –
Кромка используется для соединения двух вершин, например, если у вас есть улица и велосипедная дорожка, вы можете использовать кромку для их соединения. [image here] (http://imgur.com/a/Q2lHb) –