ข้ามไปที่เนื้อหา

S8 — สิ่งที่ต่างจากระบบเดิม (Changes vs Current)

เทียบอะไรกับอะไร

ปัจจุบัน = legacy RLPD_WEB @ 10.136.27.226 (81 ตาราง, 0 FK) → เป้าหมาย = schema WEB บน PSDBPRDDB · ดูรายละเอียด: schema.sql · Data Dictionary · Implementation · ทั้งหมดเป็น target design — ยังไม่ใช่ของจริงใน DB

ภาพรวม

  • จาก 81 ตาราง / 0 FK (มีตารางขยะ/ซ้ำเยอะ) → 46 ตาราง / FK ครบ + audit/soft-delete/workflow มาตรฐาน
  • เปลี่ยน auth จาก local username/password → Keycloak SSO (ThaiD/AD)
  • ย้าย authorization ไปรวมศูนย์ที่ Portal + Keycloak (S8 ไม่เก็บ role เอง)

🆕 เพิ่มใหม่ (ไม่มีใน legacy)

ตาราง/สิ่งที่เพิ่ม ทำไม อ้างอิง
MediaVariant เก็บรูปย่อขนาดอัตโนมัติ (original + renditions ต่อ section) REQ-WEB-003
ContentRevision workflow แก้/อนุมัติ (EDITOR→APPROVER) + เก็บทุกเวอร์ชัน REQ-WEB-003
EmbedCode + EmbedCodeAudit จัดการ embed รายตำแหน่ง (Header/Footer/Section) + audit (เดิมเป็นแค่คอลัมน์ Embed_Code) REQ-WEB-004
ApiClient + ApiClientScope + ApiAccessLog Web API ข่าวสาร/บทความ (API key/OAuth, rate limit, audit) REQ-WEB-007
SearchLog ประวัติค้นหา (article + internal) REQ-WEB-005/006
AccessibilityIssue ทะเบียน WCAG Known-Issues + Accessibility Statement REQ-WEB-001
คอลัมน์ User.KeycloakUserId ผูกตัวตนกับ Keycloak SSO Decision D8

✏️ เปลี่ยน / ปรับ

เดิม ใหม่ ความต่าง อ้างอิง
Content (ไม่มี workflow) Content + Status เพิ่มสถานะ DRAFT→PENDING→APPROVED→PUBLISHED REQ-WEB-003
Content_Article.HtmlContent (ntext) ContentArticle.HtmlContent (nvarchar max) รองรับเนื้อหา ≥1MB + HTML code mode REQ-WEB-003
Users (password + lockout) User (SSO profile) เลิกเก็บ password/lockout → Keycloak; เพิ่ม KeycloakUserId D8 / SSO
Role_Menu.Role_ID (FK ในเครื่อง) RoleMenu.RoleCode ชี้ไป central role (PORTAL.ModuleRoles) ไม่ใช่ role ท้องถิ่น REQ-WPT-005
Tm_Menu AdminMenu จัดโครงใหม่ (เมนูหลังบ้าน + เป้า Internal Search) REQ-WEB-006
ทุกตาราง: 0 FK FK ครบ referential integrity ที่ legacy ไม่มี D3
PK ปนกัน uniqueidentifier + audit/soft-delete มาตรฐาน สม่ำเสมอทั้ง schema D6/D7

❌ เอาออก / ย้าย

เดิม ผลลัพธ์ เหตุผล
Content++, Content_copy1, Content_Article_copy1/2/3, Content_bk_250368bb, Menu_copy1, Users_bk111267, Footer_Detail_copy1, SinglePage_*_copy1, Zipcodes_tmp ทิ้งทั้งหมด ตารางขยะ/backup/ซ้ำ — ไม่ยกเข้า target
Role, UserRoles ย้ายไปกลางPORTAL.ModuleRoles + PORTAL.UserRole + Keycloak กำหนดสิทธิ์ที่เดียวทุกระบบ (REQ-WPT-005)
Users.Password (local auth) ย้ายไป Keycloak SSO กลาง (ThaiD/AD)
Survey, SurveyDetail, SurveyDetail_Choice, SurveyAnswerDetail, SurveyCategory ย้ายไป S9 (PORTAL.Survey*) แบบประเมินรวมศูนย์ที่ Portal (REQ-WPT-009) · ⚠️ ข้อมูลเดิมต้องมีแผน archive/migrate

🔁 รวม / normalize (ลดจำนวนตาราง)

เดิม (หลายตาราง) ใหม่
Popup + Popup_Setting + Popup_Size + Popup_Location Popup (+ setting fields)
FAQ + FAQ_Ques + FAQ_Ques_Detail (+ FAQ_Detail) Faq + FaqQuestion
Calendar + Calendar_Category + Calendar_Detail Calendar + CalendarCategory
Theme_Choice + Theme + Theme_Color Template + DepartmentTheme + ThemeColor
*_Detail (multi-language กระจาย) *Translation pattern เดียวกันทุกที่

หมายเหตุการ rollout

  • ต้องทำ ETL ครั้งเดียว จาก legacy ก่อน cutover (ดู Implementation §8)
  • ต้อง provision ผู้ดูแลเข้า Keycloak + ลงทะเบียน 6 roles ที่ PORTAL.ModuleRoles
  • ต้องตัดสินใจกับลูกค้า: ข้อมูล Survey* เดิม archive หรือ migrate ไป S9