ป้ายกำกับ: แทรก

Oracle: Auto deploymentOracle: Auto deployment

การออกแบบระบบ 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 หลักแบบนี้

  1. Dependency Isolation: แยกส่วนที่มีความเสี่ยงสูง ออกจากสคริปต์ปกติชัดเจน
  2. PL/SQL Hierarchy: แยก Package Spec ออกจาก Package Body เพราะ Spec ต้องถูก Compile ก่อน Body เสมอ
  3. Future-Proof: มีช่องว่างระหว่างหมวดหมู่เยอะมาก หากคุณต้องการเพิ่มฟีเจอร์อย่าง XML DB หรือ Spatial Data ก็สามารถแทรกเข้าไปได้โดยไม่ต้องร่นเลขอื่น
  4. Logical Flow: การสร้าง Types ก่อน Tables และ Queues ช่วยให้คุณใช้ Object-Relational features ของ Oracle ได้อย่างเต็มที่ครับ

การใช้ Prefix หลักที่สอง

เพื่อให้การแทรกไฟล์ตาม Prefix หลักที่หนึ่งได้ง่าย ๆ ยิ่งมีจำนวนหลักที่มาก โอกาสที่ระบบต้องใช้วนซ้ำลำดับที่ทำไปแล้วจะยิ่งยาก


อ่านเพิ่มเติม