MySQL中良好的一对多关系实践

时间:2013-05-20 11:36:56

标签: mysql arrays one-to-many

我正在开发MySQL数据库的结构,我遇到了一个关于其结构的小决策问题。

我有两张桌子:

  1. 网站上发布的所有消息。
  2. 网站上发布的所有评论。
  3. 每条消息都可以有多个与之关联的评论。什么是在消息和与之相关的评论之间建立联系的更好方法?

    1. 有一个包含相关消息ID的评论字段。
    2. 为包含json格式的相关注释的ID数组的消息添加字段。
    3. 我认为通常使用第一种方法然后使用MySQL查询来查找具有相应消息的message_id的注释。但是,当有数十万条评论时它会有多高效?

      在这种情况下解码json字符串并通过完全唯一ID访问注释会更有效,更快吗?

      如果重要的话,我正在使用python作为后端。

1 个答案:

答案 0 :(得分:1)

您绝对应该在评论表中添加消息ID字段。在该字段上添加索引,不会出现性能问题。

此解决方案不会破坏数据库规范化,它逻辑且易于维护。例如,将数组存储在单个字段中将打破规范化,这将导致多个问题。