0

我正在构建一个社交网络性质的网络应用程序。有许多相关实体,如发布者、用户、出版物、帖子、评论;与订阅、喜欢、分享、评论、朋友、关注、工作、作者等关系。也像往常一样有一些实体的内容在于出版物、帖子、评论的内容。

出版物和帖子是相似的,就像经典的社交帖子一样,具有多个文本或一个媒体文件。出版物、帖子和评论将不断增加,并达到很高的数量。

我打算使用 Cayley db 可能依赖 Postgresql。

到目前为止,我描述实体关系的完整元组是这样的:

publisher -publish- publication
user -subscribe- publisher
user -comment- publication
user -like- publication
user -share- publication

user -post- post
user -friend- user
user -comment- post
user -like- post
user -share- post

publisher -follow- publisher

user -work- publisher
user -author- publication

问题是:

在哪里存储我的帖子/评论,这些帖子/评论还包含一对多文本字段和媒体文件等内容,并且会被用户点赞、分享和评论?

我应该在图形数据库中存储帖子/评论,如果是,我应该存储内容还是只存储参考并将内容存储在另一个数据库、表格或文档中?关于这些实体的数量将达到大量。

4

1 回答 1

0

偶然发现了这个悬而未决的问题,并认为我试图回答它以供将来参考。

当然,这完全取决于您的实施和要求。您可以将评论存储在 Cayley 中,但我会将图像/视频或其他媒体排除在外。只需将特定资源的 URI 或对象的 UUID 存储在另一个数据存储中。

也征求意见;您可以将评论的 UUID/ID 存储在您的 graphdb 中,并将实际评论存储在 Postgres 甚至磁盘上的文件中(仅作为示例)。

我个人更喜欢让我的 graphdb 尽可能小,并将实际内容存储在不同的存储中。

于 2018-02-05T11:30:50.510 回答