我目前正在建立一个慈善学生支持网站,以帮助想要申请美国大学的非洲学生。我想构建一个线程评论系统。我正在计划使用MongoDB,(后端是所有java)。我是MongoDB的新手,因此我花了一些时间来吸收所有信息。我有一些问题要问你:
有没有人知道我可以看看的任何实现?我希望在周末结束时完成这项工作。
我在考虑做这样的事情:
conversation
{
_id: BigInt,
entityID: BigInt, //reference to what is being commented
comments:[
status: String (approved, spam, removed),
UID: BigInt,
timestamp: date
commentText: String
likeCount: int
replies:[
status: String (approved, spam, removed),
UID: BigInt,
timestamp: date
commentText: String
likeCount: int
]
]
}
非常感谢你的帮助,
答案 0 :(得分:0)
您可以使用nested set model使用一个平面集合作为评论。这需要维护一些工作(特别是因为你有一个多根,多树集合),但它更具可扩展性,更易于操作和查询。
你会:
conversations {
_id: ObjectId,
whatever fields you need,
}
comments {
_id: ObjectId,
parentId: ObjectId,
conversationId: ObjectId,
authorId: ObjectID,
commentText: String,
lft: Int,
rght: Int,
...
}
我不熟悉Java驱动程序,但是它没有_id字段的特定类型吗?这样您就可以免费访问时间戳,并为您提供唯一的ID。