sql >> データベース >  >> NoSQL >> MongoDB

MongoDB初心者-正規化するか、正規化しないか?

    このアプローチを試してください:

    どのエンティティがヒーローであるかを調べます

    「ヒーロー」とは、データベースが中心となっているエンティティを意味します。あなたの例を見てみましょう。不動産の例の主人公は家です*。

    所有権を確認する

    所有者、代理店、画像、レビューなどの他のエンティティを調べて、家と一緒に情報を配置することが理にかなっているかどうかを自問してください。リレーショナルデータベースの外部キーのいずれかをカスケード削除しますか?もしそうなら、それは所有権を意味します。

    データが非正規化されていることが実際に重要かどうかを判断する

    代理店(およびおそらく所有者)の詳細が複数の家に分散します。それは重要ですか?

    あなたの家のコレクションはおそらく次のようになります:

    house: {
    owner,
    agency,
    images[], // recommend references to GridFS here
    reviews[] // you probably won't get too many of these for a single house
    }
    

    *実際には、それはおそらく家の広告です(家は通常、不動産のWebサイトで宣伝されており、それがおそらくあなたが本当に に興味がある)だから、それを考慮してください



    1. _idフィールドなしでドキュメントを挿入するMongodb

    2. 春のmongoTemplate。ジオクエリで並べ替えが機能しない(NearQuery)

    3. mongodbに住む時間、マングースは機能しません。ドキュメントが削除されない

    4. ネストされた配列に複数プッシュする方法