当我询问数据建模问题的正确方法时 - 使用一个或两个表 - 一些用户回答说自联接表现出性能责任。鉴于以下情况(MySQL数据库),这是否正确:
另一种方法是在各自的表中对问题,答案和评论进行建模,从而避免自我加入。我还没决定使用哪种方法。虽然这个问题与联接性能有关,但是对这两个用例的任何其他建议都会受到赞赏。
由于
答案 0 :(得分:3)
您应该将问题和答案放在单独的表格中,而不是从绩效角度来看,但是因为它们在逻辑上是不同的,否则会让人感到困惑。
从性能的角度来看,没有特别的理由说明为什么单个自连接会很慢 - 我怀疑你正在考虑的问题是你是否需要递归查询MySQL中的速度慢。
关于性能,您的设计意味着您的密钥由两个字段组成,而不是一个,因为您需要在条件中指定是否需要问题或答案。更广泛的密钥需要更长的时间来进行比较 - 这不是一个严重的问题,但它可能会在某些情况下产生影响。