首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >社会网络模式设计建议

社会网络模式设计建议
EN

Stack Overflow用户
提问于 2019-09-30 11:06:54
回答 1查看 363关注 0票数 0

我正试着想出一个社交网络应用程序的模式。

用户可以发帖子,里面有照片。帖子和照片都可以有赞和评论。Posts可以有几个协作者/所有者,这就是为什么我添加了Posts参与者表。

用户可以通过搜索文章文本中的关键字,或者通过文章的主题标签来搜索文章。这就是为什么我对这两种类型都使用the向量类型,并使用GiN索引类型进行索引的原因。

到目前为止,我已经提出了以下模式:

我对这个设计的主要问题是:

post中的

  1. 哈希标签--我这样做可以吗?也就是说,将post的哈希标签存储在post表中的一个列the向量中?

我还想到了另外两个想法:

有一个单独的哈希标签表,如:id|post_id|tag_name,每个记录将代表每个单独的hashtag。听起来有点低效,会造成太多的记录。

b.与a相同,但"tag_name“将是表示帖子的所有主题标签的the向量。这将导致表中的记录比选项'a‘少得多。

  • 保存了帖子--如果我有一个10k的帖子,每个帖子都会被1k的人喜欢。这将导致1000万的记录!这听起来不像efficient.

  • Normalization --在我看来,有太多的表需要大量连接才能向客户检索整个Post对象(以及评论、喜欢、照片和他们的评论/喜欢等等),而且写起来也非常复杂。检索/编写不同帖子的查询会不会太慢/ cumbersome?

  • Comments --我是否应该像上面的设计那样将帖子的注释和照片的评论分开呢?或者将它们合并到一个表中?,
  1. ,我希望在注释中有一个级别的回复。我应该在注释表中添加一列"parent_comment_id“吗?

EN

回答 1

Stack Overflow用户

发布于 2019-09-30 11:27:06

  1. 将post的哈希标签存储在post表中的一列the中是很好的,因为您没有在任何其他表中使用它。但是,如果您需要在需要连接表的任何场景中使用哈希标记,那么最好将它们保存在另一个表中,因为flexibility.
  2. It很好地保留了这样的记录,所以您保留了id的正确性。所以不会造成任何瓶颈。我相信你会使用CSV的。
  3. 你可以优化你的查询,明智地使用你的连接,确保你在正确的地方使用正确的连接。
  4. 如果你把评论和评论分开为照片,因为你会发现检索和存储数据更容易。你可以在需要的时候把它们组合在一起。这将避免任何数据congestion.
  5. Yes听起来正常.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58166655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档