- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[DATABASE] Cách sử dụng và lưu ý khi sử dụng khóa ngoại (Foreign Key) trong Sqlserver
Xin chào các bạn, bài viết hôm nay mình viết về khóa ngoại và các điểm lưu ý khi sử dụng khóa ngoại (Foreign Key) trong sqlserver.
[DATABASE] Khóa ngoại là gì? Cách sử dụng và lưu ý khi sử dụng khóa ngoại trong SQL
Khóa ngoại (Foreign Key) trong cơ sở dữ liệu là một ràng buộc (constraint) giữa hai bảng khác nhau. Nó được sử dụng để thiết lập một quan hệ giữa hai bảng, trong đó bảng cha (parent table) có một hoặc nhiều bản ghi có giá trị trong trường khóa chính (primary key) được trích xuất bởi bảng con (child table).
Ràng buộc khóa ngoại đảm bảo tính toàn vẹn dữ liệu giữa các bảng trong cơ sở dữ liệu.
Ví dụ, trong cơ sở dữ liệu bán hàng, bạn có thể có hai bảng: bảng khách hàng (Customers) và bảng đơn hàng (Orders).
Mỗi đơn hàng phải được gán cho một khách hàng cụ thể. Để thiết lập quan hệ giữa hai bảng này, bạn có thể sử dụng một khóa ngoại trên bảng đơn hàng để tham chiếu đến khóa chính trên bảng khách hàng.
Ví dụ về tạo bảng Orders
với khóa ngoại tham chiếu đến bảng Customers
trong SQL Server:
CREATE TABLE Customers (
CustomerID int PRIMARY KEY,
CustomerName varchar(255)
);
CREATE TABLE Orders (
OrderID int PRIMARY KEY,
CustomerID int,
OrderDate date,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
Trong ví dụ trên, bảng Customers có cột khóa chính là CustomerID, trong khi bảng Orders có cột khóa chính là OrderID và cột CustomerID được sử dụng làm khóa ngoại.
Ràng buộc khóa ngoại được thiết lập bằng cách sử dụng từ khóa FOREIGN KEY trong câu lệnh CREATE TABLE của bảng Orders và tham chiếu đến cột CustomerID trên bảng Customers.
Khi sử dụng khóa ngoại, nếu bạn cố gắng thêm hoặc cập nhật một bản ghi trong bảng con mà không có giá trị tương ứng trong bảng cha, hệ thống sẽ trả về lỗi và từ chối thao tác đó.
Tính toàn vẹn dữ liệu được đảm bảo bởi ràng buộc khóa ngoại giữa hai bảng trong cơ sở dữ liệu.
Khi sử dụng khóa ngoại trong SQL Server, có một số lưu ý quan trọng cần lưu ý:
-
Kiểm tra tính toàn vẹn dữ liệu: Ràng buộc khóa ngoại giúp đảm bảo tính toàn vẹn dữ liệu giữa các bảng trong cơ sở dữ liệu. Trước khi sử dụng khóa ngoại, hãy chắc chắn rằng các bảng đã được thiết kế một cách chính xác và không có lỗi dữ liệu.
-
Cần có quyền truy cập: Khi sử dụng khóa ngoại, người dùng cần có quyền truy cập vào các bảng được tham chiếu để thực hiện các thao tác trên các bảng này.
-
Không thể xóa hoặc cập nhật các bản ghi cha: Khi một bảng có một khóa ngoại tham chiếu đến một bảng khác, bạn không thể xóa hoặc cập nhật các bản ghi trong bảng cha mà không ảnh hưởng đến tính toàn vẹn dữ liệu của bảng con.
-
Tối ưu hóa hiệu suất: Nếu sử dụng khóa ngoại trong cơ sở dữ liệu lớn, có thể ảnh hưởng đến hiệu suất của hệ thống. Để tối ưu hóa hiệu suất, hãy sử dụng chỉ số trên các cột được sử dụng trong các ràng buộc khóa ngoại và tối ưu hóa các truy vấn để giảm thiểu số lượng bản ghi được quét.
-
Xác định quy tắc xử lý khi xóa hoặc cập nhật bản ghi cha: SQL Server cung cấp các quy tắc xử lý mặc định khi xóa hoặc cập nhật bản ghi trong bảng cha. Bạn có thể xác định quy tắc xử lý này bằng cách sử dụng từ khóa ON DELETE hoặc ON UPDATE trong câu lệnh tạo bảng hoặc sử dụng câu lệnh ALTER TABLE để thay đổi quy tắc xử lý.
Những lưu ý trên giúp bạn sử dụng khóa ngoại một cách hiệu quả và đảm bảo tính toàn vẹn dữ liệu giữa các bảng trong cơ sở dữ liệu.
Thanks for watching!