0
node.jsのmongooseと関連してmongodbを使用しています。mongodb/mongoose:拡張可能な列挙型データをモデル化する方法
{
"_id": "AAA",
"_userId": "BBB",
"task": "Meeting with Bob",
"startTime": "2016-04-12T06:00:00.000Z",
"endTime": "2016-04-12T08:30:00.000Z",
"category" : "meeting"
}
カテゴリの私が持っているオプション:今、私は、データが次のようになりますようにCalEventに「カテゴリ」プロパティを追加したい
var calEventSchema = mongoose.Schema({
"_userId" : { type: mongoose.Schema.Types.ObjectId, ref: 'PanelUser' },
"task" : String,
"startTime" : Date,
"endTime" : Date
});
exports.CalEvent = mongoose.model('CalEvent', calEventSchema);
:私は、単純なコレクションのスキーマを次しています「会議」、「休暇」、「公務員」、「オフサイト」などがあります。ユーザーがイベントを作成するときは、すべてのカテゴリオプションを選択する必要があります(たとえば、ドロップダウン)。さらに、パワーユーザーはカテゴリを拡張できる必要があります。
私はそれを行うにはいくつかの方法について考えますがどちらかと私は満足していない:
- はちょうどCalEvents'カテゴリーを保存するために(しかしCalEventスキーマがちょうど値を考慮することを確認する方法を別のコレクションを作成します。カテゴリコレクションにリストされていますか?)
- それはリレーショナルなやり方をします:1のような独自のコレクションを作成し、_idのカテゴリをCalEventsの_catIdフィールドに照会します。これは何とか私がリレーショナルテーブル何とか間違っているように感じます。
これを行うより良い方法はありますか?
はい、カテゴリを拡張する必要がある場合、これ以上エレガントなオプションはないようです実行時に実行できるように、私は別のモデルとして実装しました..カテゴリが静的であれば、この例で示したようにエレガントになります – risuch