私は今かなりの時間orientdbで遊んでいます。私のプロジェクトのほとんどで、私はトラフィックネットワークからGISとITSデータを扱っています...だから、実際のグラフのデータストアはグラフデータベースよりも優れていると思いました。グラフデータのモデリングの基礎
私は、マルチモーダルトラフィックネットワークグラフをリレーショナルデータベースからorientdbに移行するためのPythonスクリプトを書いています。基本的なデータモデル(トラフィックネットワークノード/交差点とエッジ/ウェイ)は簡単で、実際の実世界表現を格納するためにorientdbs空間データ型を利用しました。しかし、グラフデータモデリングの原則を正しく理解することが難しくなりました。
現実世界では、ノード/交差点はあまり面白くありません。ほとんどのプロパティは、エッジ(車線、車線、幅など)に位置しています。グラフデータモデルでは、グラフを使用してエンティティを関連付けるので、ノードはほとんどのプロパティを持ち、エッジはノード同士を関連付けるだけです。
グラフデータモデルで実際の交通ネットワークグラフを正しくモデル化する方法、具体的には車線や街路のコーティングなどの側面をネットワークグラフのエッジにどのようにモデル化しますか?
P.S.エッジは道路、列車、歩道、バイカールートなどの複数のタイプの交通を運ぶことができるため、ネットワークグラフのエッジにのみ参照する必要があるため、エッジのレーンとプロパティは独自のクラスにする必要があります。
way、lanes、widthのタイプはすべてオブジェクトのプロパティであり、グラフデータベースではオブジェクトは頂点です –
Ok ..現在のリレーショナルデータモデルでは、自転車レーン幅や舗装などの自転車に関連するアスペクト)は、ネットワークエッジのジオメトリから導出されるだけであるため、独自の実世界表現を持ちます。これは実世界の表現を格納するためのOLineStringプロパティを保持し、orientdbエッジ経由でトラフィックネットワークのエッジに関連付けられている自転車のレーンの頂点ですか?それも可能ですか?エッジを介してエッジを頂点に関連付けますか?それは正しいのですか? –
エッジは2つの頂点を接続するために使用されます。たとえば、通りや自転車レーンがある場合は、エッジを使用してそれらを接続できます。 [画像はこちら] –