ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
အခုအထိ CREATE TABLE, constraints, INSERT လေ့လာခဲ့ပြီးဖြစ်တဲ့အတွက် အဲဒါတွေကို တကယ့် project တစ်ခုမှာ ပေါင်းသုံးကြည့်ရအောင်။ ဒီ project က small Bookstore Database ဖြစ်ပြီး Authors, Books, Customers, Orders ဆိုပြီး table လေးခုနဲ့ ဖွဲ့စည်းထားပါတယ်။ Part 1 မှာ database structure ကို design လုပ်ပြီး PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE စတဲ့ constraint တွေနဲ့ table တွေကို မှန်ကန်စွာ ချိတ်ဆက်တည်ဆောက်ပါမယ်။ Real-world app တစ်ခုလို data တွေချင်း ဆက်စပ်နေအောင် (relationship) စဉ်းစားတည်ဆောက်တာက SQL ကို ကျင့်သားရအောင် အကောင်းဆုံးနည်းလမ်းတစ်ခုပါ။ Part 2, Part 3 တွေမှာ ဒီ table တွေအပေါ် query ရေးပြီး search, report စတာတွေ ဆက်လုပ်သွားမှာဖြစ်တဲ့အတွက် ဒီ Part 1 ရဲ့ structure က base foundation ဖြစ်ပါတယ်။
လက်တွေ့ ဆောက်ကြည့်မယ်
အရင်ဆုံး Authors table (AuthorID PRIMARY KEY, AuthorName NOT NULL, Country) ကို CREATE TABLE နဲ့ ဖန်တီးပါ။ ပြီးရင် Books table (BookID PRIMARY KEY, Title NOT NULL, AuthorID FOREIGN KEY REFERENCES Authors, Price, Stock) ကို ဖန်တီးပါ။ Customers table (CustomerID PRIMARY KEY, CustomerName NOT NULL, Email UNIQUE, City) ကို ဆက်လုပ်ပါ။ နောက်ဆုံး Orders table (OrderID PRIMARY KEY, CustomerID FOREIGN KEY, BookID FOREIGN KEY, Quantity, OrderDate) ကို ဖန်တီးပြီး Authors 3 ယောက်၊ Books 5 အုပ်၊ Customers 3 ယောက်နဲ့ Orders 4 ခုကို INSERT INTO နဲ့ sample data အနေနဲ့ ထည့်ပါ။
Code နမူနာ
CREATE TABLE Authors (
AuthorID INT PRIMARY KEY,
AuthorName VARCHAR(100) NOT NULL,
Country VARCHAR(50)
);
CREATE TABLE Books (
BookID INT PRIMARY KEY,
Title VARCHAR(150) NOT NULL,
AuthorID INT,
Price DECIMAL(10,2),
Stock INT DEFAULT 0,
FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID)
);
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
CustomerName VARCHAR(100) NOT NULL,
Email VARCHAR(100) UNIQUE,
City VARCHAR(50)
);
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerID INT,
BookID INT,
Quantity INT,
OrderDate DATE,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID),
FOREIGN KEY (BookID) REFERENCES Books(BookID)
);
INSERT INTO Authors VALUES (1, 'Aung Aung', 'Myanmar'), (2, 'J.K Rowling', 'UK'), (3, 'Haruki Murakami', 'Japan');
INSERT INTO Books (BookID, Title, AuthorID, Price, Stock) VALUES
(101, 'Myanmar Sarpay', 1, 5000, 20),
(102, 'Harry Potter', 2, 15000, 10),
(103, 'Norwegian Wood', 3, 12000, 8),
(104, 'Kafka on the Shore', 3, 13000, 5),
(105, 'Fantastic Beasts', 2, 14000, 0);
INSERT INTO Customers VALUES
(1, 'Su Su', 'susu@mail.com', 'Yangon'),
(2, 'Ko Ko', 'koko@mail.com', 'Mandalay'),
(3, 'Hla Hla', 'hlahla@mail.com', 'Yangon');
INSERT INTO Orders VALUES
(1, 1, 102, 2, '2026-01-05'),
(2, 2, 101, 1, '2026-01-10'),
(3, 3, 103, 3, '2026-01-12'),
(4, 1, 104, 1, '2026-02-01');Table 4 ခုစလုံးက relationship မှန်ကန်စွာ ချိတ်ဆက်ပြီး sample data တွေ error မတက်ဘဲ ဝင်ပါလိမ့်မယ်။၅ မိနစ် စမ်းကြည့်
Publishers table (PublisherID PRIMARY KEY, PublisherName NOT NULL) တစ်ခု ထပ်ဖန်တီးပြီး Books table ထဲမှာ PublisherID column ကို FOREIGN KEY အနေနဲ့ ALTER TABLE နဲ့ ထည့်ကြည့်ပါ - 5 minutes အတွင်း စမ်းကြည့်ပါ။
သတိလေးတစ်ချက်
Foreign key ချိတ်တဲ့အခါ parent table ကို အရင်ဖန်တီးပြီး data ထည့်ပြီးမှ child table ဘက်ကို ဆက်လုပ်ပါ - အစီအစဉ်လိုက်လုပ်ရင် error ရှောင်နိုင်ပါတယ်။