2011-02-10 3 views
1

私はこのコレクションスキームを設計することに人々の意見を得るのが好奇妙です。mysqlからmongodbに - コレクションを設計する

(私は過去8年間、MySQLを使用しているとして)私が最初にリレーショナルテーブルスキーマを与える

アプリのためにMongoDBを使用してみたいです。

テーブル

users 
user_friends 
user_notifications 

articles 
article_categories 
article_participants 

comments 

私はMongoDBのにそのテーブル構造を実装した場合、これは私のコレクションを定義するための正しい方法のようになります。

users => array 
{ 
    _id 
    email, 
    password, 
    name, 
    ... 
    user_friend => array{ 
     _user_id, 
     date_created 
    } 
    user_notifications => array{ 
     _notification_id 
    } 
    my_articles =>array{ 
     _article_id 
    } 
} 

article 
{ 
    _id, 
    content_, 
    date_created, 
    ..., 
    article_category => array{ 
     _category_id 
    } 
    article_participants = array{ 
     _user_id 
    } 
    comments=>array{ 
     _user_id 
     name, 
     comment, 
     date 
    } 
} 

categories 
{ 
    _id, 
    _user_id 
    name 
    comments=>array{ 
     _user_id 
     name, 
     comment, 
     date 
    } 
} 

コメントを感じるか、どのようにでしょう説明してくださいあなたのコレクションを整理する。どんな助けでも大歓迎です。

また、このタイプのアプリケーションでmongodbを使用する必要がありますか? (社会的なブログ共有アプリ)

答えて

1

私の意見は、エンティティオブジェクトのオブジェクトを埋め込むようなバリューオブジェクトを使用することです。

チェックこのlink for more details

バリューオブジェクト:属性が含まれていますが、全く概念のアイデンティティを持っていないオブジェクト。それらは不変として扱われるべきです。

例:人々がドル紙幣を交換するとき、一般に、それぞれのユニークな請求書を区別しません。彼らはドル建ての額面金額だけを懸念しています。この文脈では、ドル紙幣は価値オブジェクトです。しかし、連邦準備制度理事会は、それぞれのユニークな法案について心配するかもしれません。この文脈では、各請求書は実体になります。

0

Mongodbは、このようなアプリケーションに最適なツールとなります。

MongoDBでは、埋め込みは、余分なテーブルを使って参照するよりはるかに効率的です。

詳細については、このリンクhttp://www.mongodb.org/display/DOCS/Schema+Design

に見ることができます
関連する問題