我正在尝试在Postgresql中模拟一个DB,这个平台类似于twitter和Instagram这样的社交媒体平台。
我有以下要求:
现在我意识到,如果用户继续以评论的形式回复其他用户,我们就可以有深度嵌套的注释。我想出了一些自引用表,这些表都是从公共实体表继承的。到目前为止,我的意思是:

^^我知道,“喜欢”或评论“喜欢”是可能的,但这不是一项要求。为了防止这种情况,我认为我可以在应用程序代码级别强制执行这些约束。如果我们将来可能想要实现这些选项,那么最好是保留这些选项,对吗?
我的问题是,这是一个好的DB实现吗?是否有用例和陷阱,我可能会遇到,我没有看到?设计是否适合用例?
发布于 2018-01-09 02:55:44
您的基本模式结构可能可以用于您提到的基本用例。我只是错过了评论和帖子之间的连接(哪个评论属于哪个帖子)。您还可以说,注释和post是同一类型的对象,只需区分它们与另一篇文章的关系(或者没有)。此外-更重要的是:
现在,您应该考虑使用图形数据库来建模社交媒体领域。正如您在模式中所看到的,大多数数据是表之间的链接,而关系数据库实际上在高度链接的数据中并不是最好的。这是因为SQL查询可能最终会包含许多联接,一旦图形达到一定的大小和深度,这可能会成为性能问题。
还可以将关系数据库(或nosqldb)的使用与图形数据库结合使用,在该数据库中,您只对图形中的链接网络和常规数据库中更面向表的数据进行建模。
有关图形数据库的流行示例,请参见这。
发布于 2018-01-10 05:53:28
目前的实现已经足够好了。需要考虑的几点:
https://stackoverflow.com/questions/48160665
复制相似问题