Thuta Learning
ရှာဖွေရန်
ProjectsData & Databasesbeginner

Bookstore Project - Part 1: Table Setup

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Bookstore Project - Part 1: Table Setup ကို လက်တွေ့ project ထဲမှာ အသုံးချတတ်မယ်
  • ကိုယ်တိုင် code ရေးပြီး run ကြည့်တတ်မယ်
  • Project တစ်ခုလုံးကို အဆင့်လိုက် ဆောက်တတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

အခုအထိ 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 နမူနာ

sql
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');
You should see
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 ရှောင်နိုင်ပါတယ်။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Parent table (Authors, Customers) ကို အရင်ဖန်တီးဖို့ မေ့ပြီး FOREIGN KEY ရှိတဲ့ Books/Orders table ကို အရင်ဖန်တီးမိတတ်တာ - error တက်ပါတယ်
  • AuthorID, BookID စတဲ့ foreign key value တွေကို parent table ထဲမှာ မရှိတဲ့ id နဲ့ INSERT ဝင်မိတတ်တာ

အခု ကိုယ်တိုင် စမ်းကြည့်

Publishers table (PublisherID PRIMARY KEY, PublisherName NOT NULL) တစ်ခု ထပ်ဖန်တီးပြီး Books table ထဲမှာ PublisherID column ကို FOREIGN KEY အနေနဲ့ ALTER TABLE နဲ့ ထည့်ကြည့်ပါ - 5 minutes အတွင်း စမ်းကြည့်ပါ။

You'll know it worked when: Table 4 ခုစလုံးက relationship မှန်ကန်စွာ ချိတ်ဆက်ပြီး sample data တွေ error မတက်ဘဲ ဝင်ပါလိမ့်မယ်။

Bookstore Project - Part 1: Table Setup | Thuta Learning