复合主键(Composite Primary Key)是由两个或多个列组成的主键,用于唯一标识数据库表中的每一行记录。与单列主键相比,复合主键在某些情况下能更准确地反映数据之间的关系和约束。
关联表:
OrderID和ProductID作为复合主键。多对多关系:
业务逻辑约束:
StudentID和CourseID作为复合主键。历史记录表:
假设有一个订单系统,包含以下表:
Orders 表:存储订单信息,主键为 OrderID。Products 表:存储产品信息,主键为 ProductID。OrderDetails 表:存储订单和产品之间的关联信息,复合主键为 OrderID 和 ProductID。CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
OrderDate DATE,
CustomerID INT
);
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(100),
Price DECIMAL(10, 2)
);
CREATE TABLE OrderDetails (
OrderID INT,
ProductID INT,
Quantity INT,
PRIMARY KEY (OrderID, ProductID),
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
在这个例子中,OrderDetails 表使用 OrderID 和 ProductID 作为复合主键,确保每条订单和产品组合的唯一性。
总之,复合主键在特定场景下非常有用,但在使用时需要仔细考虑其优缺点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。