0

MongoDBデータ設計の実行についてフィードバックをもらいたいです。私はこれまで実際にそれを使ったことがないので、私のデザインが異常に見える場合は私に知らせてください。

私には、ユーザーとユーザーが実行するアクティビティの概念があります。ユーザーとユーザーが実行するアクティビティの両方のアドレスが必要であり、ユーザーが実行するアクティビティはそのユーザー専用です。アクティビティが重複することはないため、アドレスも重複しないようにする必要があります。

私の最初のデータ構造は次のようになります。

User : {
  # User data,
  address : {
    # address data
  },
  address : {
    # address data,
    home : true
  },
  activity : {
    # activity data,
    _address_id: #referenced address within user
  },
  activity : {
    # activity data,
    _address_id: #referenced address within user
  },
}

活動は自宅で行われた可能性があるという仮定があります。

これを行うためのより良い方法はありますか?ユーザーだけでなくアクティビティにもアドレスを埋め込む必要がありますか?これをユーザーモデルから完全に削除する必要がありますか?

これはすべて、Mongoidを使用するRailsアプリケーションにまとめられています。

4

1 に答える 1

1

データ構造は完全に良好です。ドキュメント指向データベースは、このように使用することを目的としています。スペースを浪費することになるので、すべてのアクティビティ内でアドレスを繰り返すべきではありません。

User : {
  # User data,
  address_<id> : {
    # address data
  },
  address_<id> : {
    # address data,
    home : true
  },

  activity : {
    # activity data,
    _address_id: #referenced address within user
  },
  activity : {
    # activity data,
    _address_id: #referenced address within user
  },
}

注意が必要なことは2つだけ
です。1。1つのアクティビティでドキュメント全体を取得し
ないでください。2。ドキュメントが最大サイズを超えないようにします(または再コンパイルします)。

于 2013-01-22T17:28:05.967 に答える