1

MongoDBを使用してSAAS採用管理ポータルを作成したいのですが、これは次のユースケースに対応します。

  1. 1人の賢い人事マネージャーが自分の会社をポータルに登録します(したがって、これまでに見つかった2つのリソースは人事マネージャーと会社です)

  2. 会社には、 http://myportal.com/abccompanyのような独自のプロファイルページがあります (Twitterと同じ) 。

  3. 登録後、HRマネージャーは自分の会社から他のHRマネージャーを招待できます(ここで適用されるビジネス検証はyammerと同じです。ドメイン名ベースのアクセスuser1@company1.comはanyuser@company1.comを招待できます)

  4. 可能なすべての従業員を招待した後、人事マネージャーはジョブの投稿を開始します(3番目のリソースが見つかりました。新しい求人です!!)

  5. 新しい求人情報を作成した後、その求人のURIを取得します。これは、ソーシャルメディア、他の求人ポータルなどで公開できます。

  6. 正しく伝えられれば、候補者はAbc Companyでの求人に興味を持ち、ポータルに候補者プロフィールを登録した後、求人応募を行います。(現在、候補者と求人応募の2つのリソースが見つかりました)

  7. Job Applicationは、ほとんどのトランザクションデータを保持するリソースです。このリソースは、Job Applicationが通過し、採用活動の複数のフェーズをキャプチャするため、急速に変化し続けます)、残りのリソースはほとんど読み取り専用です。

  8. 将来的には、候補者の巨大なデータベースがあり、候補者のプロファイルとして再利用するために他のデータから分離しておくことを目的としています。つまり、候補者のデータは特定の会社に関連付けられていません。

これをMongoDbでモデル化して(できればMorphia-Javaライブラリを使用して)、次の目標を達成するにはどうすればよいですか?

  • 求人応募リソースでクエリを最適化するには
  • MongoDBが提供する全文検索を利用するには
4

1 に答える 1

1

少し奇妙なことに私を驚かせた2つのこと:

Job Applicationは、ほとんどのトランザクションデータを保持するリソースです。このリソースは、Job Applicationが通過し、採用活動の複数のフェーズをキャプチャするため、急速に変化し続けます)、残りのリソースはほとんど読み取り専用です。

MongoDBが従来の意味(複数のドキュメントにまたがる)のトランザクションをサポートしていないことをご存知ですか?データモデリングはリレーショナルデータベースとは異なり、1つのドキュメントで多くの機能を実行できる可能性があるため、これはそれほど大きな問題ではありません(これはほとんどトランザクションです)。

MongoDBが提供する全文検索を利用するには

MongoDBは現在、全文検索をサポートしていません-頻繁に要求され、計画されていますが、もう少し時間がかかります:https ://jira.mongodb.org/browse/SERVER-380

ただし、Morphiaは正規表現をサポートしており、手動でトークン化/ステム化できます。

これにはMongoDBを簡単に使用できますが、MySQLを使用できなかった理由はわかりません。

モデリングでは、単純なアプローチ(会社-ユーザー、会社、求人情報、候補者、アプリケーション)から始め、実際にパフォーマンスの問題が発生している場合にのみ最適化を開始します。キャッシングは、シナリオで長い道のりを歩むはずです。

于 2011-12-07T08:37:45.420 に答える