猫鼬中的用户,帖子和评论模型

时间:2020-06-22 06:30:54

标签: javascript database mongodb mongoose mongoose-schema

我正在制作一个与Reddit非常相似的论坛应用程序。我在这里使用猫鼬进行架构设计。我对自己拥有的模型有疑问-用户,帖子和评论

  • 架构在所有模型中看起来都还不错吗?
  • 在“用户”中,我想在用户个人资料上显示朋友。就像您进入他的个人资料时一样,会出现 Friends(200),当我单击朋友列表时,便会出现(例如Facebook,然后单击您就可以访问朋友的个人资料)。我尚未创建SUM( (4-(DECODE(c.qty1,0,1,0) + DECODE(c.qty2,0,1,0) + DECODE(c.qty3,0,1,0) + DECODE(c.qty4,0,1,0)))) NON_ZERO_QTY 模式,但实际上需要吗?
  • 有关评论的问题。到目前为止,我已经有了基本的注释架构。主题评论或回复发生了什么。如何存储它们?

我当前拥有的所有模型:

Friend
const userSchema = new Schema(
  {
    username: { type: String, required: true },
    email: { type: String, reuired: true },
    password: { type: String, required: true },
    country: { type: String, required: true },
    friends: [{ type: Schema.Types.ObjectId, ref: "Friend" }], // is it needed?
    posts: [{ type: Schema.Types.ObjectId, ref: "Post" }],
  },
  { timestamps: true }
)
const postSchema = new Schema(
  {
    title: { type: String, required: true },
    description: { type: String, required: true },
    user: { type: Schema.Types.ObjectId, ref: "User" },
    slug: { type: String, slug: "title" },
    upvotes: { type: Number },
    downvotes: { type: Number },
    city: { type: String }, // post will have a tag by the city like NewYork, LA etc.
  },
  { timestamps: true }
)

1 个答案:

答案 0 :(得分:1)

对于第二个问题,您不需要friend模式,因为friend也是user