Quan hệ một nhiều (one to many)

Quan hệ một nhiều (one to many), tức là một thực thể sẽ có quan hệ với nhiều thực thể khác nhau.
Ví dụ:

  • Một xe ô tô có nhiều ghế ngồi.
  • Một mẹ có nhiều con.

một mẹ có nhiều con

Trong quan hệ một nhiều, mỗi record của bảng này có thể có quan hệ với nhiều hàng thuộc bảng khác.

Ví dụ: tạo hai bảng Customers và Orders có quan hệ như sau, một Customer thì có nhiều Order và một Order chỉ có duy nhất một Customer.

--Sử dụng database Master
USE master
--Kiểm tra database có tồn tại hay không mới xóa
IF EXISTS(select * from sys.databases WHERE name='Test')
DROP DATABASE Test
CREATE DATABASE Test 

GO 

USE Test;

CREATE TABLE Customers 
  ( 
     CustomerId int PRIMARY KEY IDENTITY( 1, 1 ), 
     Name       varchar(50) 
  ); 

CREATE TABLE Orders 
  ( 
     OrderId    int PRIMARY KEY IDENTITY( 1, 1 ), 
     CustomerId int FOREIGN KEY REFERENCES Customers( CustomerId ) 
  ); 

--Nhập dữ liệu cho bảng Customers 
INSERT INTO Customers 
VALUES      ( 'Customer 1' ); 

INSERT INTO Customers 
VALUES      ( 'Customer 2' ); 

INSERT INTO Customers 
VALUES      ( 'Customer 3' ); 

INSERT INTO Customers 
VALUES      ( 'Customer 4' ); 

--Nhập dữ liệu cho Orders 
INSERT INTO Orders 
            (CustomerId) 
VALUES      ( 1 ); 

INSERT INTO Orders 
            (CustomerId) 
VALUES      ( 2 ); 

INSERT INTO Orders 
            (CustomerId) 
VALUES      ( 3 ); 

INSERT INTO Orders 
            (CustomerId) 
VALUES      ( 1 ); 

Chạy đoạn Mã trên, bạn sẽ tạo ra được bảng Customers và bảng Orders, đồng thời khởi tạo dữ liệu sẵn cho hai bảng này.
Select dữ liệu từ bảng Customers.

Lấy dữ liệu từ Customers

Bạn sẽ thấy Customers và Orders có quan hệ một nhiều, Ví dụ với Customer có Id  = 1 thì sẽ có hai OrderId =  1 và 4.
Hình minh họa.

one to many

Quy tắc tạo bảng:
Với quan hệ một nhiều, bạn đặt khóa ngoại (FOREIGN KEY) ở phía nhiều, khóa chính ở phía một.
Ở ví dụ trên, chúng ta đặt khóa ngoại ở bảng Orders, khóa chính ở bảng Customers, lí do một Customer có nhiều Order.

Các môn học khác

Docker là công nghệ ảo hóa container phổ biến nhất hiện nay. Nó giúp bạn phát triển và deploy phần mềm một cách dễ dàng hơn.

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.

Khóa học này cung cấp cho ta kiến thức nền tảng về công nghệ Blockchain, Bitcoin. Vì sao nó được gọi là công nghệ của tương lai, vì sao giá Bitcoin lại cao đến vậy. Làm sao để mua Bitcoin, ETH.