Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
Shoper Gamer
•
ติดตาม
29 ก.ย. เวลา 11:00 • การศึกษา
Data By Shoper Gamer
Alternate Key คืออะไร
โดย
ในการออกแบบฐานข้อมูลที่มีประสิทธิภาพ Alternate Key (คีย์ทางเลือก) ทำหน้าที่เป็น "ตัวสำรอง" ที่สำคัญเมื่อ Primary Key ไม่สามารถใช้งานได้หรือไม่เหมาะสม บทความนี้จะพาคุณเจาะลึกไปกับ Alternate Key ตั้งแต่แนวคิดพื้นฐานไปจนถึงการนำไปใช้งานจริง
★
Alternate Key คืออะไร
Alternate Key คือ Candidate Key (คีย์ตัวเลือก) ที่ไม่ถูกเลือกให้เป็น Primary Key แต่ยังคงมีความสามารถในการระบุแต่ละแถวได้อย่างไม่ซ้ำกัน โดยมีลักษณะสำคัญคือ
✅️ เป็น Candidate Key ที่มีคุณสมบัติครบถ้วน
✅️ ไม่ถูกเลือกเป็น Primary Key
✅️ ยังคงความเป็น Unique เช่นเดิม
✅️ สามารถใช้เป็นตัวระบุทางเลือกได้
★
Alternate Key ทำงานอย่างไร
1) การเลือก Primary Key หนึ่งตัวจาก Candidate Keys
2) Candidate Keys ที่เหลือ จะกลายเป็น Alternate Keys
3) การบังคับความไม่ซ้ำกัน (Unique) ผ่าน UNIQUE Constraint
4) กลไกการทำงาน
รักษาความไม่ซ้ำกันของข้อมูล
5) ให้ทางเลือกในการอ้างอิงข้อมูล
6) สนับสนุนการค้นหาแบบต่างๆ
★
ประเภทของ Alternate Keys
1) Alternate Key แบบเดี่ยว
ใช้คุณลักษณะเดียวเป็นคีย์
○ ตัวอย่าง: อีเมล, เลขบัตรประชาชน, รหัสพนักงาน
○ ข้อดี: ใช้ง่าย
○ ข้อเสีย: อาจไม่ครอบคลุม
2) Alternate Key แบบผสม
ใช้หลายคุณลักษณะรวมกันเป็นคีย์
○ ตัวอย่าง: (รหัสสาขา, รหัสสินค้า), (ชื่อ, นามสกุล, วันเกิด)
○ ข้อดี: ยืดหยุ่นกว่า
○ ข้อเสีย: ซับซ้อนกว่า
★
ประโยชน์
✅ ให้ทางเลือกในการอ้างอิงข้อมูล
✅ เพิ่มความยืดหยุ่นในการออกแบบ
✅ รักษาความถูกต้องของข้อมูล
✅ สนับสนุนการค้นหาที่หลากหลาย
✅ เป็นตัวสำรอง เมื่อ Primary Key มีปัญหา
★
ตัวอย่างการใช้งาน
☆ ตัวอย่าง 1 ระบบทะเบียนนักเรียน
SQL
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
-- Primary Key
StudentCode VARCHAR(10) UNIQUE, -- Alternate Key 1
CitizenID CHAR(13) UNIQUE,
-- Alternate Key 2
Email VARCHAR(100) UNIQUE,
-- Alternate Key 3
FirstName VARCHAR(50),
LastName VARCHAR(50)
);
☆ ตัวอย่าง 2 ระบบสินค้า
SQL
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
-- Primary Key
SKU VARCHAR(20) UNIQUE,
-- Alternate Key 1
ProductCode VARCHAR(15) UNIQUE, -- Alternate Key 2
ProductName VARCHAR(100),
Barcode VARCHAR(50) UNIQUE
-- Alternate Key 3
);
☆ ตัวอย่าง 3 ระบบพนักงาน
SQL
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY, -- Primary Key
EmployeeNumber VARCHAR(8) UNIQUE, -- Alternate Key 1
Email VARCHAR(100) UNIQUE,
-- Alternate Key 2
PhoneNumber VARCHAR(10) UNIQUE, -- Alternate Key 3
FirstName VARCHAR(50),
LastName VARCHAR(50)
);
★
ควรใช้ Alternate Key เมื่อ
1) มี Candidate Key หลายตัว ที่เหมาะสม
2) ต้องการทางเลือก ในการอ้างอิงข้อมูล
3) ข้อมูลมีตัวระบุหลายแบบ จากแหล่งต่างๆ
4) ต้องการความยืดหยุ่น ในการสืบค้นข้อมูล
★
ตัวอย่างการใช้งานจริง
-- การค้นหาด้วย Primary Key
SELECT * FROM Students WHERE StudentID = 1001;
-- การค้นหาด้วย Alternate Key
SELECT * FROM Students WHERE StudentCode = 'STU2023001';
SELECT * FROM Students WHERE Email = 'student@university.ac.th';
SELECT * FROM Students WHERE CitizenID = '1234567890123';
★
การออกแบบ Alternate Key อย่างมีประสิทธิภาพ
1) การเลือก Alternate Key ที่เหมาะสม
SQL
CREATE TABLE Books (
BookID INT PRIMARY KEY,
ISBN VARCHAR(20) UNIQUE,
-- Alternate Key (ดี)
Title VARCHAR(200),
Author VARCHAR(100)
-- Title ไม่เหมาะเป็น Alternate Key เพราะอาจซ้ำกันได้);
2) การใช้ Composite Alternate Key
SQL
CREATE TABLE CourseSections (
SectionID INT PRIMARY KEY,
CourseCode VARCHAR(10),
SectionNumber INT,
Semester VARCHAR(10),
UNIQUE (CourseCode, SectionNumber, Semester) -- Composite Alternate Key
);
3) การจัดการกับ NULL values
SQL
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
Email VARCHAR(100) UNIQUE,
-- Alternate Key
Phone VARCHAR(10) UNIQUE
-- Alternate Key
-- UNIQUE constraint อนุญาตให้มี NULL ได้
);
★
ประโยชน์ตอนใช้งานจริง
1) การทำ Data Integration
SQL
-- เมื่อรวมข้อมูลจากหลายระบบ
CREATE TABLE MergedCustomers (
CustomerID INT PRIMARY KEY,
OldSystemID VARCHAR(20) UNIQUE, -- Alternate Key จากระบบเก่า
NewSystemID VARCHAR(20) UNIQUE, -- Alternate Key จากระบบใหม่
CustomerName VARCHAR(100)
);
2) การรองรับการเปลี่ยนแปลง
SQL
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
OldProductCode VARCHAR(15) UNIQUE, -- Alternate Key (รหัสเก่า)
NewProductCode VARCHAR(15) UNIQUE, -- Alternate Key (รหัสใหม่)
ProductName VARCHAR(100)
);
★
ข้อควรระวังในการใช้ Alternate Key
❌ อย่าสร้าง Alternate Key มากเกินความจำเป็น
❌ ต้องมั่นใจว่า Alternate Key มีค่า Unique จริง
❌ พิจารณาประสิทธิภาพ ในการสร้างดัชนี (Index)
❌ จัดการ NULL values อย่างเหมาะสม
✏️ Shoper Gamer
>>
https://shopergamer.vercel.app/
✓
Candidate Key คืออะไร 👇
>>
https://www.blockdit.com/posts/68d8bbda646a243f4ef1dc92
Credit :
👇
●
https://www.simplilearn.com/alternate-key-in-dbms-article
●
https://chat2db.ai/resources/blog/alternate-key-in-dbms
●
https://www.geeksforgeeks.org/dbms/alternate-key-in-dbms/
●
https://learn.microsoft.com/en-us/power-apps/maker/data-platform/define-alternate-keys-reference-records
data
เทคโนโลยี
ข่าวรอบโลก
บันทึก
1
2
ดูเพิ่มเติมในซีรีส์
Data
1
2
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2025 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย