后端岗位面试题更新 2026-08-05

在项目里,你是如何设计数据库表结构的?请从字段设计、索引设计、表之间关联关系等方面展开说明。

后端开发系统设计技术选型MySQL

考察说明

考察候选人在真实项目中数据库建模的实践能力,包括字段、索引、关联设计的合理性与细节。

回答思路

  1. 【回答框架 1】字段设计上先明确业务实体与边界,选择合适存储类型,避免过度使用大文本或模糊类型。遵循三范式降低冗余,但结合实际查询性能可适当冗余,如冗余统计字段或反规范化。字段命名统一且自解释,常用下划线分隔。
  2. 【回答框架 2】索引设计围绕查询模式建立,优先为高频过滤、排序、关联字段建索引。区分唯一索引与普通索引,联合索引遵循最左前缀原则,并控制索引数量避免写入放大。用覆盖索引减少回表,大字段不建议直接索引。
  3. 【回答框架 3】表关联设计强调外键只在必要时使用,避免强耦合,更多通过应用层维护关系。一对一、一对多、多对多关系分别对应主外键、中间表。中间表通常包含业务关联属性,并做好唯一约束。
  4. 【回答框架 4】多表关联场景下明确查询路径,避免笛卡尔积与隐式转换。设计时结合业务读写比例,考虑分表、水平扩展的预留。数据量大的表优先设计主键与分区键,保证扩展性。
  5. 【关键点 1】字段类型匹配数据特性,控制长度,注意字符集与排序规则。
  6. 【关键点 2】索引优先最左前缀,覆盖索引和唯一索引按需设计。
  7. 【关键点 3】关联设计优先应用层维护,中间表用于多对多。
  8. 【关键点 4】反规范化可用于读多场景,但需同步维护一致性。
  9. 【易错点 1】过度设计索引导致写入性能下降。
  10. 【易错点 2】忽略 NULL 值对索引生效的影响。
  11. 【易错点 3】随意使用外键或冗余导致维护成本高。