我正在建立一个社交网络性质的网络应用程序。有许多相关的实体,如发布者,用户,出版物,帖子,评论;与关系,如订阅,喜欢,分享,评论,朋友,关注,工作,作者。也像往常一样,一些实体的内容存在于出版物、帖子、评论中。
出版物和帖子是相似的,就像经典的社交帖子一样,有多个文本或一个媒体文件。而出版物、帖子和评论将不断增加,并将达到很高的数字。
我计划使用Cayley数据库,也许依赖于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问题是:
在哪里存储我的帖子/评论,这些帖子/评论也有一对多文本字段和媒体文件等内容,并将被用户点赞、分享和评论?
我应该在图形数据库中存储帖子/评论吗?如果是,我应该存储内容,还是只存储引用并将内容存储在另一个数据库、表或文档中?这些实体的数量将达到很大的数量。
发布于 2018-02-05 19:30:51
偶然发现了这个悬而未决的问题,我想我会试着回答它,以备将来参考。
当然,这完全取决于您的实现和需求。您可以将评论存储在Cayley中,但我会将图像/视频或其他媒体排除在其中。只需将特定资源的URI或对象的UUID存储在另一个数据存储中即可。
同样对于评论;您可以将评论的UUID/ID存储在您的graphdb中,并将实际的评论存储在Postgres中,甚至存储在磁盘上的文件中(仅作为示例)。
我个人更喜欢让我的graphdb尽可能小,并将实际内容存储在不同的存储中。
https://stackoverflow.com/questions/34518164
复制相似问题