2017-05-11 3 views
0

私は現在、既存のカスタムビルドコンテンツ管理システムをMySQLを使用してMongoDBに変換しています。 CMSには、タイトルと本文の内容を持つページがあり、pagesという表に格納されています。メニューアイテムをMongoDBのページに関連付ける

CMSには複数のメニューがあり、Webサイト管理者が編集することができ、すべてmenusというテーブルに格納されています。それぞれ固有のIDとリンクがあり、menu_linksという表に格納されています。

menu_linksには、メニューリンクがページまたはURLにリンクするかどうか、リンクするページのIDを保持する列がある場合はNULLの列があります。これは、ページのURLが変更された場合にメニューURLが破損するのを防ぐためです。

MongoDBは、メニューの複製データと管理が非常に難しいシステムに終わる文書を互いに埋め込むためのものです。ページのIDをメニュー項目にリンクするのが適切でしょうか?

+0

MongoDBは、リレーショナルデータベースではありませんので、あなたは、データをunnormaliseする必要があります。 NoSQLたくさんの関係がある場合はそれが良い選択ではありません 私が理解したところでは、 'menus'と' menu_links'テーブルを組み合わせることができます –

+0

@AdamW。私はそれを理解していますが、私はページがどのリンクに関連しているかを示す方法を知る必要があります。 –

答えて

0

それはあなたが何を意味するのか

ページだった場合、私は知らない

{ 
    _id: 111, 
    // other fields 
    url: "url/to/page/111" 
} 

メニュー

{ 
    _id: 1, 
    elements: [ 
     {page_id: 111, url: "url/to/page/111"}, 
     {page_id: 222, url: "url/to/page/222"} 
    ] 
} 
+0

これは機能します - そこから関連するページを取得する最良の方法は何ですか? 'lookup'を使うことはできますか? –

関連する問題