我想在Postgresql中建立一个数据库,模拟类似Twitter和Instagram的社交媒体平台。以下是我的需求:
1.用户可以创建帖子 2.用户可以点赞帖子 3.用户可以评论帖子 4.用户可以评论其他用户的评论(回复评论) 5.用户可以点赞评论
现在我知道,如果用户继续以评论形式回复其他用户,我们可以有深度嵌套的评论。我想到了几个自引用表,它们都继承自一个共同的实体表。以下是我的实现:
1.用户可以创建帖子 2.用户可以点赞帖子 3.用户可以评论帖子 4.用户可以评论其他用户的评论(回复评论) 5.用户可以点赞评论
现在我知道,如果用户继续以评论形式回复其他用户,我们可以有深度嵌套的评论。我想到了几个自引用表,它们都继承自一个共同的实体表。以下是我的实现:
我知道可以“点赞”另一个人的“赞”,或者评论一个“赞”,但这并非必需。为了防止这种情况,我考虑在应用程序代码级别实施这些限制。总是最好保留选项,以防将来可能需要实现它们,对吧?
我的问题是,这是一个好的数据库实现吗?有没有使用案例和可能遇到的陷阱我没考虑到的?这个设计是否适合使用案例?