နားလည်ထားရမယ့် အချက်
Server instance တစ်ခုတွင် database များရှိပြီး database တစ်ခုအတွင်း schema များ၊ schema တစ်ခုအတွင်း table နှင့်အခြား objects များရှိပါတယ်။ Schema က naming နဲ့ permission boundary အဖြစ်အသုံးဝင်ပါတယ်။ Default `public` schema ထဲအားလုံးပုံမချဘဲ project object များကို `app` schema အောက်မှာထားမယ်။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
`app.users` table မှာ identity primary key၊ email၊ display name၊ active flag နဲ့ creation time ထည့်မယ်။ Schema-qualified name သုံးခြင်းက `search_path` အပေါ် မှားယွင်းယုံကြည်မှုကိုလျှော့ပြီး query က ဘယ် object ကိုရည်ညွှန်းသလဲ တိကျစေပါတယ်။
အတူတူ စမ်းရေးကြည့်မယ်
CREATE SCHEMA IF NOT EXISTS app;
CREATE TABLE app.users (
user_id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
email text NOT NULL UNIQUE,
display_name text NOT NULL,
is_active boolean NOT NULL DEFAULT true,
created_at timestamptz NOT NULL DEFAULT now()
);
\d app.users`app.users` table နှင့် columns၊ constraints များကို `psql` ကပြမည်။၅ မိနစ် စမ်းကြည့်
`app.categories` table ကို identity key၊ unique name နှင့် created time ပါအောင် ကိုယ်တိုင်ဖန်တီးပါ။
သတိလေးတစ်ချက်
Table/column name ကို quoted MixedCase သုံးရင် query တိုင်း quote ပြန်ရေးရပါတယ်။ lowercase snake_case ကို တစ်သမတ်တည်းသုံးပါ။
PostgreSQL — Data Definition — PostgreSQL Global Development Group