Я создаю приложение среднего стека, позволяющее людям читать и писать отзывы о продуктах.Должен ли я построить одну или две модели монгодба?
Отзывы будут классифицированы по продуктам на веб-сайте: пользователь откроет страницу, отображающую список продуктов, рассмотренных на веб-сайте, и узнает название каждой продукции. При нажатии на продукт пользователь переходит на новую страницу, отображающую все отзывы о продукте.
Я был установлен на здании только одна модели сбора всех отзывов:
var ReviewSchema = new mongoose.Schema({
productName: String,
productCreator: String,
review: String,
upvotes: {type: Number, default: 0},
author: String
});
страницы Список всех товары получат все отзывы от базы данных, а затем отображать только ProductName и productCreator после устранения всех дубликатов.
<a href="link/to/reviews/aboutProducts">{{productName}} - {{productCreator}}</a>
Но это, вероятно, неэффективно. Было бы лучше построить две разные модели, одну для обзоров и одну для продуктов?
Я извиняюсь, если мой вопрос глупый, но я все еще учусь о MEAN и много о нереляционной дб не знаю, что это мой первый проект;)
Поскольку mongo является нереляционной базой данных, я не на это 100%, но я думаю, что лучше иметь отдельную коллекцию для обзоров и просто связывать их с идентификатором productID. Кроме того, я предполагаю, что автор является пользователем, вы также хотите, чтобы это была отдельная коллекция и была связана с uniqID. – Baruch
Спасибо за вашу помощь Я планирую сделать отдельную коллекцию для автора, сейчас я просто использую String, чтобы все было просто. Кто-нибудь еще со 100% -ным ответом? :) – Puck7
My $ 0.02: Создайте отдельную модель для каждой * вещи * у вас есть. Здесь у вас есть «продукт» и «обзор» (и, вероятно, «автор» тоже). - Как вы можете видеть, этот вопрос в основном основан на мнениях и поэтому [не подходит для StackOverflow] (http://stackoverflow.com/help/on-topic). – Tomalak