2014-09-26 48 views
0

我有两个表:如何创建一个一对一的关系(SQL)

CREATE TABLE Goods 
(
    GoodsCode   INTEGER PRIMARY KEY, 
); 

CREATE TABLE Complaint 
(
    Num   INTEGER PRIMARY KEY, 
); 

如何在它们之间一个一对一的关系?

+0

也许这只是一个例子,是......好......不是那么好。但是,在一对一的关系中,每件商品只能有一个投诉*。 – 2014-09-27 13:05:29

回答

4

由于这两个列是主键列,所以你不能有重复无论是在列,但在表列NumGoodsGoodsCodeComplaint引用因此它是一个到一个关系。

CREATE TABLE Goods 
(
    GoodsCode   INTEGER PRIMARY KEY, 
); 


CREATE TABLE Complaint 
(
    Num   INTEGER PRIMARY KEY, 
     FOREIGN KEY (Num) REFERENCES Goods(GoodsCode) 
); 
+0

也许值得一提的是,通过这个解决方案,您可以强制执行一对一关系的两个部分以获得_same主键_。哪一个是有效的,但不是强制性的,甚至在一对一关系中是必要的。 – 2014-09-27 13:12:58

相关问题