You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

利用依赖关系建模数据库表:UML关联在表建模中的含义

UML类图关联在数据库表建模中的对应关系

你贴的图里是Customer和Order的一对多关联(一个客户可以有0到多个订单,每个订单必须归属一个客户),这种UML关联映射到数据库表的逻辑很直接,核心是用外键约束建立主从表关系:

  • 先把每个UML类转成独立表:

    • Customer类对应customer表,类里的属性变成表字段,比如customer_id设为主键(PK),用来唯一标识每个客户。
    • Order类对应order表,order_id设为主键,存储订单相关属性。
  • 处理一对多关联:
    在"多"的一方(也就是order表)加一个外键字段,比如customer_id,让它关联customer表的主键customer_id,同时设置非空约束——因为UML里明确每个订单必须属于一个客户,所以这个字段不能为null。

给你个实际的SQL建表示例:

-- 创建客户表
CREATE TABLE customer (
    customer_id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL
);

-- 创建订单表,通过customer_id关联客户表
CREATE TABLE `order` (
    order_id INT PRIMARY KEY AUTO_INCREMENT,
    order_date DATETIME NOT NULL,
    total_amount DECIMAL(10,2) NOT NULL,
    customer_id INT NOT NULL,
    FOREIGN KEY (customer_id) REFERENCES customer(customer_id)
);

再补充两种常见关联的表映射逻辑:

  • 一对一关联:要么在其中一张表加外键并设唯一约束,要么让两张表共用同一个主键值。
  • 多对多关联:得新建一张中间关联表,比如客户和商品的多对多关系,就建customer_product表,里面包含customer_id和product_id两个外键,分别关联客户表和商品表的主键。

内容的提问来源于stack exchange,提问作者Adelin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 14:57:22