首页 > 解决方案 > SQL中的直接关系

问题描述

我是 SQL 的初学者,我正在尝试制作一个小型数据库,但我被要求OrderNumberOrders表和表之间建立直接关系CustomerNumberCustomers我不是在这里使用直接关系吗?

这是我的代码:

客户表:

CREATE TABLE Customers
(
    CustomerNumber VARCHAR(25) PRIMARY KEY NOT NULL,
    CustomerName   VARCHAR(50),
    Phone          INT NOT NULL,
    Country        VARCHAR(50),
    City           VARCHAR(50),
    State          VARCHAR(50),
    PostalCode     VARCHAR(5) NOT NULL
);

订单表:

CREATE TABLE Orders
(
    OrderNumber    VARCHAR(25) ,
    CustomerNumber VARCHAR(25) PRIMARY KEY NOT NULL,
    ProductName    VARCHAR(200) NOT NULL UNIQUE,
    OrderDate      DATE NOT NULL,
    requiredDate   DATE NOT NULL,
    Status         VARCHAR(50)
);

标签: sqldatabase

解决方案


我相信,你可能想要这样的东西:

CREATE TABLE Customers
(
    CustomerNumber INT PRIMARY KEY NOT NULL,
    CustomerName   VARCHAR(50),
    Phone          INT NOT NULL,
    Country        VARCHAR(50),
    City           VARCHAR(50),
    State          VARCHAR(50),
    PostalCode     VARCHAR(5) NOT NULL
);

CREATE TABLE Orders
(
    OrderNumber    INT PRIMARY KEY NOT NULL,
    CustomerNumber INT NOT NULL FOREIGN KEY REFERENCES Customers(CustomerNumber),
    ProductName    VARCHAR(200) NOT NULL UNIQUE,
    OrderDate      DATE NOT NULL,
    requiredDate   DATE NOT NULL,
    Status         VARCHAR(50)
);
  • CustomerNumber将和的数据类型更改OrderNumberINT
  • 制作Orders.CustomerNumber了与表(列)相关的外键CustomerCustomerNumber

推荐阅读