【问题标题】:RDBMS store list of children in father tableRDBMS 存储父亲表中的孩子列表
【发布时间】:2017-12-02 14:00:59
【问题描述】:

如果我想找到"John" 的所有孩子,我需要运行SELECT * FROM Child where Father_Name = "John",它会搜索整个Child 表。

有没有办法设计它,使Father 表将包含子列表,以便我可以通过在Father 表中搜索"John" 行来获取"John" 的所有子代?

【问题讨论】:

    标签: mysql database-design relational-database one-to-many rdbms


    【解决方案1】:

    您需要在 Child 表中的 Father_Name 上建立索引。

    阅读 MySQL 中的 CREATE INDEX 语句。一旦该索引到位,MySQL 将在您执行您提供的查询时使用它。这将比扫描整个表快得多。表越大,改进越显着。

    你没有问这个,但无论如何我都会扔掉它。就性能而言,使用 VARCHAR(45) 字段作为主键通常很糟糕。大多数数据库设计为每个实体添加一个标识号,以用作主键,并用作其他表或同一表中的其他行中的外键。整数比字符串产生更小和更快的索引。

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 2013-09-15
      • 1970-01-01
      • 2014-05-19
      • 2018-06-15
      • 2019-02-23
      相关资源
      最近更新 更多