emi*_*ir0 0 sql database ms-access
假设我们有以下2个表格:
CREATE TABLE tblProduct
(`Product_ID` int, `Product_Name` varchar(7));
Run Code Online (Sandbox Code Playgroud)
和
CREATE TABLE tblProductExtended
(`Product_ID` int, `Product_Size` int, `Product_Quantity` int);
Run Code Online (Sandbox Code Playgroud)
有了这些价值观:
INSERT INTO tblProduct
(`Product_ID`, `Product_Name`)
VALUES
(1, 'Shoes1'),
(2, 'Shoes2');
Run Code Online (Sandbox Code Playgroud)
和
INSERT INTO tblProductExtended
(`Product_ID`, `Product_size`, `Product_Quantity`)
VALUES
(1, 36, 20),
(1, 37, 20),
(1, 38, 30),
(2, 36, 50),
(2, 37, 60),
(2, 37, 75);
Run Code Online (Sandbox Code Playgroud)
现在很明显,tblProductExpanded中的Product_ID应该是tblProduct的Product_ID的FK.但是,我仍然可以查询:
SELECT tblProduct.Product_ID, Product_Name, Product_Size, Product_Quantity
FROM tblProduct
INNER JOIN tblProductExtended ON tblProduct.Product_id = tblProductExtended.Product_id
Run Code Online (Sandbox Code Playgroud)
哪个回报:
Product_ID Product_Name Product_Size Product_Quantity
1 Shoes1 36 20
1 Shoes1 37 20
1 Shoes1 38 30
2 Shoes2 36 50
2 Shoes2 37 60
2 Shoes2 37 75
Run Code Online (Sandbox Code Playgroud)
那么有人可以向我解释一下,如果我们可以查询相同的信息而不管关系(AFAIK),为什么我们需要"关系"?除了必须花时间设置它们之外,它们的实际用途是什么.