【发布时间】:2010-12-27 14:13:42
【问题描述】:
我正在考虑在社交网络应用程序的上下文中用于 post 及其 cmets 的数据库模式,我正在徘徊这两者中哪一个会提供更好的性能:
我将帖子的 cmets 存储在 “评论” 表中,并将帖子存储在 “帖子” 表中。 现在我的 cmets 表架构如下所示:
postId commentId postedBy Date CommentBody
因为为了检索帖子的 cmets,我需要搜索所有 postId 与该特定帖子的 postId 匹配的帖子,甚至我的 postId 也无法成为主键,因为 postId 在列中是非唯一的(因为单个帖子的多个 cmets),因此 我在考虑是否可以将 postId 和 commentId 合并到一个单独的 commentId (这将成为主键) 使用哪个 postId 也可以检索 .这就是我的想法:
CommentId 将生成为 postId*100+i(其中 i 是帖子的第 i 个评论)
因此,为了检索帖子的 cmets(例如使用 postId=8452 ),我将搜索所有带有 commentId 的帖子(这将是主键),位于 845200 和 845299 之间......而不是使用 postId=8452 搜索所有 cmets ..(当然,这将 cmets 的最大数量限制为 100)。但这会带来任何性能提升吗?
【问题讨论】:
标签: mysql database database-design rdbms