children 的 RDBMS 存储列表在父亲 table 中

RDBMS store list of children in father table

如果我想找到 "John" 的所有 children,我需要 运行 SELECT * FROM Child where Father_Name = "John" 搜索整个 Child table.

有没有办法设计成 Father table 将包含 children 的列表,这样我就可以获得 [=12] 的所有 children =] 只需在 Father table?

中搜索 "John"

您需要在子 table 中的 Father_Name 上建立索引。

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

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