構築するスキーマがあります。これは、近くの 2 つのバス停間の距離またはその他の情報を格納するバス停アプリケーションです。インデックスまたは一意のキーに対して 1 つの駅 ID を格納することはほとんどありません。駅1と駅2を一意のインデックスキーとしてグループ化しますが、それが正しい方法であるかどうかは少し確信が持てず、2つのバス停IDを配列に入れ、この配列をインデックスと一意のキーとして作成しますか?
質問する
271 次
1 に答える
1
それは非常に合理的に聞こえます...それは「関係テーブル」または追加の属性を持つ多対多結合テーブルです。M:N 関係の属性として距離を保存します。/ 2 つのバス停 ID が複合主キーを形成します。
このモデリング ガイドのセクション 2.1.5 の画像を見てください。
データベースの設計手法について少し学びたいと思うかもしれません。もしそうなら、データベースとモデリングに関するいくつかの有用な情報源は次のとおりです。
- Elmasri と Nevathi によるデータベース システムの基礎- データベースのすべての側面について非常に専門的であり、詳細なモデリングについて説明しています
- CJ Date によるデータベース システムの紹介- 上記と同様
- 正規形のチュートリアル (BCNF) - BCNF は、正規形を満たすまでモデルにルールを繰り返し適用することによって、データ モデルを引き出す手段を規定します (効率的であり、意図した冗長性を排除します)。
- ウィキペディアのエントリはかなり簡潔に見えます- 上記の BCNF と同様ですが、見栄えがよく簡潔に見えます (おそらくセクション 3 と 4 に焦点を当てます)
編集:Mongo DBに関連する更新
実際、上記はすべてデータベース モデリングのかなり一般的なものです。MongoDB アプリケーションのデータ モデリングに関する考慮事項に関するいくつかの優れたリソースを読んで、より具体的なガイダンスが必要だと思います。
そのため、この有益な SO 投稿を参照してください: how-to-organise-a-many-to-many-relationship-in-mongodb . 著者は、あなたが求めているもののように聞こえる良い説明をします. ドキュメントやビデオへの参照もあります。
于 2013-03-07T16:42:11.317 に答える