sql - SQL中的直接关系
问题描述
我是 SQL 的初学者,我正在尝试制作一个小型数据库,但我被要求OrderNumber
在Orders
表和表之间建立直接关系CustomerNumber
,Customers
我不是在这里使用直接关系吗?
这是我的代码:
客户表:
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)
);
解决方案
我相信,你可能想要这样的东西:
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
将和的数据类型更改OrderNumber
为INT
- 制作
Orders.CustomerNumber
了与表(列)相关的外键Customer
CustomerNumber
推荐阅读
- ios - iOS检查用户之前是否购买过该应用程序
- android - 每当按下按钮时更改文本视图的背景图像
- ios - Cordova PWA 应用程序离线模式
- c++ - 在 C++ 中是否可以进行急切的 thread_local 初始化?
- c++ - 在使用 opencv 的 C++ 中,我有一个转换为灰度图像的 uint 数组,只显示灰屏没有图像
- python - Python KeyError:'OUTPUT_PATH'
- javascript - Lodash - 按数组中的位置排序
- c# - 评论模块架构
- winforms - .net winforms 列表框垂直滚动
- python - GAE 灵活和 Stackriver 使用 python 记录严重性级别