MASTER schema — ข้อมูลหลักใช้ร่วมทุกระบบ (Shared Master Data)¶
Schema กลางบน UAT .155 / PSDBDEVDB สำหรับ ข้อมูลอ้างอิง (lookup/master data)
ที่ทุกระบบ S1–S9 ใช้ร่วมกัน — แทนการที่แต่ละระบบเก็บสำเนา lookup ของตัวเอง
อัปเดตล่าสุด: 2026-08-16 — เพิ่ม
PoliceStations(คัดลอกจาก OCIPA)
ตารางในปัจจุบัน¶
| ตาราง | แถว | ที่มา | หมายเหตุ |
|---|---|---|---|
Provinces |
77 | มาตรฐานรหัสจังหวัดไทย | PK = code (เช่น 10 = กรุงเทพมหานคร) |
PoliceStations |
1,514 | คัดลอกจาก OCIPA.PoliceStation (S6 legacy) เมื่อ 2026-08-16 |
ทุกแถว active; จังหวัดถูก re-map เป็นรหัสมาตรฐาน |
MASTER.Provinces¶
| Column | Type | Constraints | คำอธิบาย |
|---|---|---|---|
code |
nvarchar(4) | PK | รหัสจังหวัดมาตรฐาน (10 = กรุงเทพฯ, 11 = สมุทรปราการ, …) |
name_th |
nvarchar(150) | NOT NULL | ชื่อจังหวัดภาษาไทย |
name_en |
nvarchar(150) | NULL | ชื่อจังหวัดภาษาอังกฤษ |
region_th |
nvarchar(50) | NULL | ภาค (ภาคกลาง / ภาคเหนือ / …) |
MASTER.PoliceStations¶
สร้างเมื่อ 2026-08-16 โดยคัดลอกจาก OCIPA.PoliceStation (ในฐานเดียวกัน —
UAT มี schema OCIPA ครบ 261 ตารางอยู่แล้ว จึงไม่ต้องแตะ production S6)
| Column | Type | Constraints | คำอธิบาย |
|---|---|---|---|
id |
int | PK | = PoliceStationID เดิมของ OCIPA (คงไว้เพื่อ trace กลับข้อมูลคดีเดิม) |
name_th |
nvarchar(250) | NOT NULL | ชื่อสถานีตำรวจ (เช่น สน.นางเลิ้ง, ส.รฟ.ธนบุรี) |
station_code |
varchar(50) | NULL | รหัสอ้างอิงจากระบบ CRIME ของสำนักงานตำรวจแห่งชาติ (PoliceStationCode เดิม) |
province_code |
nvarchar(4) | FK → MASTER.Provinces.code |
รหัสจังหวัดมาตรฐาน (มี index) |
address_th |
nvarchar(250) | NULL | ที่อยู่ |
is_active |
bit | NOT NULL, DEFAULT 1 | สถานะใช้งาน |
สิ่งที่เปลี่ยนจากตารางต้นทาง (OCIPA)¶
- แก้ typo ชื่อคอลัมน์ — ต้นทางสะกด
PoliceStationame(ตก N); ตารางกลางใช้name_thตาม convention ของMASTER.Provinces - Re-map จังหวัด — ต้นทางอ้าง
ProvinceIDภายในของ OCIPA (1= กรุงเทพฯ); ตารางกลาง map เป็น รหัสจังหวัดมาตรฐาน (10= กรุงเทพฯ) ผ่านการ join ชื่อจังหวัดไทย — ตรวจแล้ว ครบ 77/77 จังหวัด, ไม่มีแถวที่ map ไม่ได้ - Collation — คอลัมน์ใหม่ใช้ database default (
SQL_Latin1_General_CP1_CI_AS) ให้ตรงกับMASTER.Provinces(schemaOCIPAเดิมเป็นThai_CI_AS); ข้อความไทยไม่กระทบเพราะเป็น nvarchar (Unicode)
การตรวจสอบหลัง migrate (2026-08-16)¶
- รวม 1,514 แถว = ต้นทางครบ,
province_codeไม่มี NULL, active ทั้งหมด - กระจายตามจังหวัดสมเหตุสมผล: กรุงเทพฯ 107, นครราชสีมา 52, เชียงใหม่ 38, อุบลฯ 37, บุรีรัมย์ 34
Migration script¶
Idempotent (รันซ้ำได้ — insert เฉพาะ id ที่ยังไม่มี): master_police_stations.sql
วิธีรันบน UAT (read path เดียวกับการ probe schema — ดู
UAT DB Schema Status):
VPN → SSH .155 → docker exec -i rlpd-mssql sqlcmd … -d PSDBDEVDB -i /dev/stdin < master_police_stations.sql
แนวทางใช้งานสำหรับแต่ละระบบ¶
- อ่านตรงจาก
MASTER.PoliceStations(ฐานเดียวกันทุกระบบบน.155) — filteris_active = 1, กรองตามจังหวัดด้วยprovince_code - อย่า สร้างสำเนา police station ใหม่ใน schema ของตัวเอง — ถ้าต้องการคอลัมน์เพิ่ม ให้เสนอเพิ่มที่ตารางกลางนี้
- ระบบที่ join กลับข้อมูลคดี OCIPA เดิม:
MASTER.PoliceStations.id=OCIPA.PoliceStation.PoliceStationID - ที่ production cutover: รัน script เดิมซ้ำบนฐาน production ได้ทันที (idempotent)