Я пытаюсь спроектировать модель данных в mongoose, но меня смущает вопрос о том, какой подход лучше всего подходит для структурирования документов.
Изображение диаграммы отношений сущностей (ERD)
- Пользователь может создавать компании, вакансии и резюме (один-ко-многим)
- В компании есть вакансии (один-ко-многим)
- Пользователь может подать заявку на работу (многие-то-многим)
- работа может иметь резюме (многие-ко-многим)
Компания имеет отношение «один ко многим» с заданием, но пользователь имеет отношение «многие ко многим»с работой.Лучше ли почитать Иова?
Есть ли лучший способ структурировать документы?
Я впервые работаю с mongoose и Node.js.Любая помощь будет высоко ценится
User.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Define collection and schema for User
var User = new Schema({
companies: [{
jobs: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Job'
}]
}],
applied_jobs: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Job'
}],
resumes: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Resume'
}]
}, {
collection: 'users'
});
module.exports = mongoose.model('User', User);
Job.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Define collection and schema for Job
var Job = new Schema({
created_by: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
submitted_resumes: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Resume'
}]
}, {
collection: 'jobs'
});
module.exports = mongoose.model('Job', Job);
Resume.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Define collection and schema for Resume
var Resume = new Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
}, {
collection: 'resumes'
});
module.exports = mongoose.model('Resume', Resume);