การออกแบบระบบ Deployment สำหรับ Oracle Database โดยใช้การเรียงลำดับตามชื่อไฟล์ เป็นแนวทางที่เป็นมาตรฐาน ในการทำ Database Migration เพื่อให้มั่นใจว่าโครงสร้างและข้อมูลถูกติดตั้งอย่างถูกต้องตามลำดับความสัมพันธ์
นี่คือโครงสร้างการตั้งชื่อไฟล์และการแบ่งโฟลเดอร์ที่ครอบคลุมทุก Function ครับ
Prefix 2 ตัว
การใช้ Prefix หลักแรก ให้เป็นประโยชน์สูงสุดจะช่วยให้ระบบ Deployment “ยืดหยุ่น” และ “รองรับอนาคต” ได้ดีมาก โดยไม่จำเป็นต้องแก้ชื่อไฟล์เดิมเวลาจะมีฟังก์ชันใหม่แทรกเข้ามา โดยเรียงลำดับตามความสัมพันธ์ของ Object และเผื่อช่องว่าง ไว้สำหรับขยายตัวในอนาคต
การใช้ Prefix หลักที่สอง เพื่อให้แทรกกลางได้ง่าย ๆ โดยไม่ต้องแก้ไฟล์เก่า
🏗️ การออกแบบ Prefix 3 หลัก
🏗️ Phase 1: Infrastructure & Instance
เน้นการตั้งค่าตัวเครื่องยนต์ และสิทธิ์ระดับระบบ
000-019: System Parameters & Reboot Logic
- 000: Static Parameters
- 005: Database Mode
- 010: Dynamic Parameters
020-049: Storage & Security Policy
- 020: Permanent Tablespaces
- 025: Temporary & Undo Tablespaces
- 030: Profiles
- 035: Resource Manager
- 040: Unified Audit Policies
050-099: Identity & Connectivity
- 050: Roles
- 060: User Schemas
- 070: System Grants
- 080: Directory Objects
- 090: Database Links
🏗️ Phase 2: Schema Objects
เน้นการสร้าง “ถังเก็บข้อมูล” และความสัมพันธ์
100-149: Foundation Objects
- 100: Sequences
- 110: User Defined Types
- 120: Synonyms
150-199: Tables & Storage Strategy
- 150: Tables
- 160: Partitioned Tables
- 170: Global Temporary Tables
- 180: External Tables
200-299: Constraints & Performance
- 200: Primary Keys & Unique Constraints
- 210: Standard Indexes
- 220: Partitioned Indexes
- 230: Specialized Indexes
- 250: Foreign Keys
🏗️ Phase 3: Messaging & Programmable Logic
เน้นระบบสื่อสารและตรรกะทางธุรกิจ
300-349: Advanced Queuing
- 300: Queue Tables
- 310: Queues
- 320: AQ Subscribers
350-599: PL/SQL Logic
- 350: Views
- 360: Materialized Views
- 400: Functions
- 410: Procedures
- 420: Package Specifications
- 430: Package Bodies
- 450: Triggers
- 460: Java Sources / Libraries
🏗️ Phase 4: Data & Application Config
เน้นการเติมข้อมูลลงในระบบ
- 600: Master Data
- 610: System Configuration
- 700: Data Migration
- 750: Patching Scripts
🏗️ Phase 5: Post-Deployment & Maintenance
เน้นการจูนเครื่องและตรวจสอบความถูกต้อง
- 800: Contexts & Security Policies
- 850: Scheduler Jobs
- 900: Statistics Collection
- 980: Cleanup Scripts
- 990: Validation Reports
💡 จุดเด่นของการแบ่ง 3 หลักแบบนี้
- Dependency Isolation: แยกส่วนที่มีความเสี่ยงสูง ออกจากสคริปต์ปกติชัดเจน
- PL/SQL Hierarchy: แยก
Package SpecออกจากPackage Bodyเพราะ Spec ต้องถูก Compile ก่อน Body เสมอ - Future-Proof: มีช่องว่างระหว่างหมวดหมู่เยอะมาก หากคุณต้องการเพิ่มฟีเจอร์อย่าง XML DB หรือ Spatial Data ก็สามารถแทรกเข้าไปได้โดยไม่ต้องร่นเลขอื่น
- Logical Flow: การสร้าง
Typesก่อนTablesและQueuesช่วยให้คุณใช้ Object-Relational features ของ Oracle ได้อย่างเต็มที่ครับ
การใช้ Prefix หลักที่สอง
เพื่อให้การแทรกไฟล์ตาม Prefix หลักที่หนึ่งได้ง่าย ๆ ยิ่งมีจำนวนหลักที่มาก โอกาสที่ระบบต้องใช้วนซ้ำลำดับที่ทำไปแล้วจะยิ่งยาก
อ่านเพิ่มเติม