1. MySQL外键关联实战:从建表到关系建立
在数据库设计中,外键(Foreign Key)是维系表与表之间关系的核心机制。今天我要分享的是如何在MySQL中创建两个关联表,并通过外键建立它们之间的约束关系。这个操作看似基础,但其中有不少值得注意的细节和技巧。
我选择以学生信息管理系统为例,设计一个主表stus(学生基本信息表)和一个从表stus_info(学生详细信息表)。这种"主表-从表"的结构在实际项目中非常常见,比如订单与订单明细、用户与用户档案等场景都会用到。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据库表结构设计与创建
2.1 主表stus的设计与创建
首先我们创建主表stus,它存储学生的核心信息。这里我使用了自增ID作为主键,这是最常用的设计方式:
sql复制CREATE TABLE stus (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
gender CHAR(1),
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
几个关键设计点:
id字段设为自增主键(AUTO_INCREMENT),MySQL会自动管理这个序列- 使用InnoDB引擎,因为只有InnoDB支持外键约束
- 字符集设为utf8mb4,支持完整的Unicode字符(包括emoji)
name字段设为NOT NULL,因为学生姓名是必填项
注意:在正式环境中,建议为每个表添加创建时间和更新时间字段,方便后期维护。可以增加
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP和updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。
2.2 从表stus_info的设计与创建
接下来创建从表stus_info,存储学生的详细信息:
sql复制CREATE TABLE stus_info (
info_id INT NOT NULL AUTO_INCREMENT,
stus_inf
