နားလည်ထားရမယ့် အချက်
JSONB က parsed binary representation ဖြစ်ပြီး operators နဲ့ indexes များကိုပံ့ပိုးပါတယ်။ Stable, required, relational fields ကို JSONB ထဲဝှက်မထားဘဲ real columns/relationships သုံးသင့်ပါတယ်။ JSONB က optional evolving metadata အတွက်ကောင်းပြီး structure validation ကို application သို့ CHECK constraints ဖြင့်သတ်မှတ်ရပါတယ်။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Tutorial metadata ထဲ `tags` နှင့် `level` ထည့်ပြီး containment operator `@>` ဖြင့်ရှာမယ်။ General GIN index နှင့် expression index ကြားရွေးချယ်မှုကို actual queries အလိုက်လုပ်ရပါတယ်။
အတူတူ စမ်းရေးကြည့်မယ်
UPDATE app.tutorials
SET metadata = jsonb_build_object(
'level', 'beginner',
'tags', jsonb_build_array('postgresql', 'database')
)
WHERE slug = 'postgresql';
CREATE INDEX tutorials_metadata_gin_idx
ON app.tutorials USING gin (metadata);
SELECT title
FROM app.tutorials
WHERE metadata @> '{"tags": ["postgresql"]}'::jsonb;JSONB metadata ထည့်ပြီး indexed containment query run နိုင်မည်။၅ မိနစ် စမ်းကြည့်
Metadata ထဲ difficulty field ရှိပြီး allowed values သုံးခုထဲပါကြောင်း CHECK constraint စမ်းရေးပါ။
သတိလေးတစ်ချက်
Data အားလုံးကို JSONB column တစ်ခုထဲထည့်ရင် foreign keys၊ type safety နှင့် reporting အားနည်းသွားပါတယ်။
PostgreSQL — JSON Types — PostgreSQL Global Development Group