Возьмем пример истории: история состоит из многих предложений, в моем случае история никогда не будет превышать 20 предложений. Лучше сделать схему для сюжета и другие один за Сентенции и, наконец, сделать в Story ссылку на предложения, которые составляют историю:В MongoDB лучше ли разграничивать Схемы или собирать их вместе?
var SentenceSchema = new mongoose.Schema({
// Some other fields ...
sentence: {
type: String,
validate: validateSentence,
trim: true
}
// Some other fields ...
});
var StorySchema = new mongoose.Schema({
// Some other fields ...
//Sentences of the Story
sentences: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Sentence'
}]
// Some other fields ...
});
Или лучше поставить предложения непосредственно в истории :
var StorySchema = new mongoose.Schema({
// Some other fields ...
//Sentences of the Story
sentences: [{
// Some other fields ...
sentence: {
type: String,
validate: validateSentence,
trim: true
}
// Some other fields ...
}]
// Some other fields ...
});
для истории 20 предложений (Макса), для того, чтобы получить всю историю, в первом случае мы должны сделать 20 соединяет ... Не настолько эффективно ... но во втором случае любит более расширяемый, например, если я хочу отображать только некоторые случайные предложения или обновлять предложение ...
В моем случае я не думаю, что предложения будут повторно использованы для других рассказов, а в рассказе написано предложение по предложению. Я имею в виду, когда написано предложение, это немедленно сохраняется в MongoDB.
Заранее благодарим за любые советы.
Это имеет смысл. Спасибо :-) И как @ profesor79 сказал, что поиск будет более эффективным. – Zagonine