【发布时间】:2016-02-23 02:58:37
【问题描述】:
我正在构建一个平均堆栈应用程序,允许人们阅读和撰写有关产品的评论。
评论将按网站上的产品分类:用户将打开显示网站上评论的产品列表的页面,并查看每个产品的名称。当点击产品时,用户会被引导到一个新页面,其中显示了有关该产品的所有评论。
我打算只构建一个模型来收集所有评论:
var ReviewSchema = new mongoose.Schema({
productName: String,
productCreator: String,
review: String,
upvotes: {type: Number, default: 0},
author: String
});
列出所有产品的页面将从数据库中获取所有评论,然后在消除所有重复后仅显示产品名称和产品创建者。
<a href="link/to/reviews/aboutProducts">{{productName}} - {{productCreator}}</a>
但它可能根本没有效率。建立两种不同的模型,一种用于评论,一种用于产品,会更好吗?
如果我的问题很愚蠢,我很抱歉,但我仍在学习 MEAN 并且对非关系数据库知之甚少,这是我的第一个项目 ;)
【问题讨论】:
-
由于 mongo 是一个非关系型数据库,我对此不是 100%,但我认为最好有一个单独的评论集合并将它们链接到 productID。另外,我猜作者是用户,您还希望它是一个单独的集合并与 uniqID 链接在一起。
-
感谢您的帮助我计划为作者单独收集,我现在只是使用字符串来保持简单。其他人有100%的答案吗? :)
-
我的 0.02 美元:为您拥有的每个 事物 创建一个单独的模型。在这里,您有“产品”和“评论”(可能还有“作者”)。 -- 如您所见,这个问题主要是基于意见的,因此not a good fit for StackOverflow。
标签: node.js mongodb express mean.io