数据库工程师面试题.docxVIP

  • 0
  • 0
  • 约9.92千字
  • 约 24页
  • 2026-05-10 发布于四川
  • 举报

数据库工程师面试题

数据库设计

请描述一个多对多关系,并给出在关系型数据库中实现该关系的三种方法,比较它们的优缺点。

多对多关系是指两个实体集之间,任一实体的一个实例可以与另一实体的多个实例相关联,反之亦然。例如,在一个电商系统中,“商品”和“订单”之间就是典型的多对多关系:一个订单可以包含多种商品,一种商品也可以出现在多个订单中。

在关系型数据库中,无法直接建立两个表之间的多对多物理链接,必须通过一个中间表(也称为连接表、关联表或交叉表)来分解。以下是三种实现方法及其比较:

1.基础连接表法:

方法:创建一个新的表,通常包含两个外键列,分别引用两个主表的主键。这两个外键共同构成该连接表的复合主键,或可以单独增设一个代理主键(如自增ID)。

示例表结构:`订单详情(订单ID,商品ID,数量,单价)`。其中(订单ID,商品ID)可作为复合主键,`数量`和`单价`是此关系特有的属性(称为“关系属性”)。

优点:

结构清晰,符合关系数据库范式,是标准且最常用的方法。结构清晰,符合关系数据库范式,是标准且最常用的方法。

易于表达关系本身的属性(如购买数量、下单时间)。易于表达关系本身的属性(如购买数量、下单时间)。

查询灵活,可以方便地进行各种连接查询和聚合。查询灵活,可以方便地进行各种连接查询和聚合。

缺点:

查询时需要连接多个表,当数据量极大时,性能可能成为瓶颈。查询时需要连接

文档评论(0)

1亿VIP精品文档

相关文档