နားလည်ထားရမယ့် အချက်
Data type က သိမ်းနိုင်သော value၊ operation နဲ့ validation အချို့ကို database level မှာသတ်မှတ်ပေးပါတယ်။ Money ကို floating-point နဲ့မသိမ်းဘဲ `numeric` သုံးသင့်ပြီး time zone ပါသည့် event အတွက် `timestamptz` ကိုရွေးချယ်သင့်ပါတယ်။ `NULL` က empty string သို့ zero မဟုတ်ဘဲ “မသိ/မရှိသေး” ဆိုသော three-valued logic ကိုရည်ညွှန်းပါတယ်။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Tutorial table တွင် title ကို `text`၊ price ကို `numeric(10,2)`၊ published state ကို boolean၊ metadata ကို `jsonb` နဲ့ သိမ်းမယ်။ Publish မလုပ်သေးသော row ရဲ့ `published_at` ကို `NULL` ထားပြီး query မှာ `IS NULL` ဖြင့်စစ်ရပါတယ်။
အတူတူ စမ်းရေးကြည့်မယ်
CREATE TABLE app.tutorials (
tutorial_id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
title text NOT NULL,
slug text NOT NULL UNIQUE,
price numeric(10,2) NOT NULL DEFAULT 0 CHECK (price >= 0),
is_published boolean NOT NULL DEFAULT false,
published_at timestamptz,
metadata jsonb NOT NULL DEFAULT '{}'::jsonb
);
SELECT title FROM app.tutorials WHERE published_at IS NULL;Domain meaning နဲ့ကိုက်ညီသော columns ပါသည့် `app.tutorials` table ရမည်။၅ မိနစ် စမ်းကြည့်
Lesson duration၊ rating၊ optional video URL နဲ့ publish time အတွက် type များရွေးပြီး ဘာကြောင့်ရွေးသလဲရေးပါ။
သတိလေးတစ်ချက်
`WHERE published_at = NULL` က true မဖြစ်ပါ။ NULL comparison အတွက် `IS NULL` ကိုသုံးပါ။
PostgreSQL — Data Types — PostgreSQL Global Development Group