এই ভলিউমে · ভলিউম 10
ডেটাবেস
স্কিমা পরিচিতি ER ডায়াগ্রাম

অধ্যায় ১০.২ — ER ডায়াগ্রাম

১. উদ্দেশ্য

মূল এন্টিটি সম্পর্ক চিত্রণ (Mermaid ফরম্যাটে)। প্রতিটি স্কিমা গ্রুপের জন্য একটি ER ডায়াগ্রাম।

২. কোর গ্রুপ

erDiagram PARTNER ||--o{ USER : has PARTNER ||--o{ BRANCH : has USER ||--o{ USER_ROLE : has ROLE ||--o{ USER_ROLE : assigned ROLE ||--o{ ROLE_PERMISSION : has PERMISSION ||--o{ ROLE_PERMISSION : granted

৩. অপারেশনস গ্রুপ

erDiagram BOOKING ||--o{ BOOKING_SEGMENT : contains BOOKING ||--o{ BOOKING_PASSENGER : contains BOOKING ||--o{ BOOKING_TICKET : produces BOOKING_TICKET ||--o{ BOOKING_SEGMENT : covers BOOKING }o--|| CUSTOMER : "made by" BOOKING }o--|| SUPPLIER : "with" BOOKING ||--o{ JOURNAL_ENTRY : "generates"

৪. ফিন্যান্সিয়াল গ্রুপ

erDiagram JOURNAL_ENTRY ||--|{ JOURNAL_ENTRY_LINE : has JOURNAL_ENTRY_LINE }o--|| ACCOUNT : posts_to ACCOUNT ||--o{ ACCOUNT : "parent-child" JOURNAL_ENTRY }o--|| PERIOD : belongs_to PERIOD ||--o{ PERIOD_SNAPSHOT : snapshots JOURNAL_ENTRY_LINE }o--o| CUSTOMER : dimension JOURNAL_ENTRY_LINE }o--o| SUPPLIER : dimension JOURNAL_ENTRY_LINE }o--o| BRANCH : dimension

৫. পেমেন্ট ও AR গ্রুপ

erDiagram INVOICE ||--o{ INVOICE_LINE : has INVOICE }o--|| CUSTOMER : "billed to" INVOICE }o--o| BOOKING : "for" PAYMENT ||--o{ INVOICE_PAYMENT : applies_to INVOICE ||--o{ INVOICE_PAYMENT : receives PAYMENT }o--|| CUSTOMER : "from" PAYMENT ||--|{ JOURNAL_ENTRY : generates

৬. BSP/Memo গ্রুপ

erDiagram BSP_FILE ||--|{ BSP_LINE : contains BSP_LINE }o--o| BOOKING_TICKET : matches MEMO }o--|| AIRLINE : "from" MEMO }o--o| BOOKING : "links to" MEMO ||--o{ MEMO_DISPUTE : may_have

৭. ইন্টিগ্রেশন গ্রুপ

erDiagram SUPPLIER ||--o{ SUPPLIER_CREDENTIALS : has SUPPLIER_REQUEST_LOG }o--|| BOOKING : about WEBHOOK_SUBSCRIPTION ||--o{ WEBHOOK_DELIVERY : produces WEBHOOK_DELIVERY }o--|| WEBHOOK_EVENT : "for"

৮. মূল কার্ডিনালিটি

সম্পর্ক নোট
Booking ↔ Tickets 1:N — একটি বুকিং একাধিক টিকেট তৈরি করতে পারে
Ticket ↔ Segments 1:N — একটি টিকেট একাধিক সেগমেন্ট কভার করে
Booking ↔ JE 1:N — প্রতিটি স্টেট ট্রানজিশন একটি JE
JE ↔ JEL 1:N — minimum 2 লাইন (debit + credit)
Invoice ↔ Payment M:N — একটি পেমেন্ট একাধিক ইনভয়েস পরিশোধ করতে পারে
Memo ↔ Booking M:N — মেমো একাধিক বুকিং কভার করতে পারে

৯. ডায়াগ্রাম পদ্ধতি

travoBooks ডকুমেন্টেশনে Mermaid ব্যবহৃত: - চিরন্তন (text-based, version-controllable) - ব্রাউজারে রেন্ডার (no static images) - ব্র্যান্ডেড থিম (green palette)

১০. বাস্তব schema বনাম conceptual ER

ER ডায়াগ্রাম conceptual। বাস্তব schema-এ: - partner_id সব টেবিলে (RLS) - audit fields সর্বত্র - composite FKs - additional indexes

বিস্তারিত table definitions migrations দেখুন।