F
Product ManagementCập nhật 2026-06-30 · product-management/DATABASE-BLUEPRINT.md

Database Blueprint — Blueprint dữ liệu

Nguồn dữ liệu: src/lib/founder/product-registry.tsDATABASE_BLUEPRINT. Chi tiết kiến trúc: docs/platform/DATA-ARCHITECTURE.md + docs/platform/DOMAIN-MODEL.md.

Nguyên tắc

  • Single DB, shared schema, tenant_id + Postgres RLS mọi bảng tenant-scoped.
  • Spine entity dùng chung; vertical extend (không nhân bản).
  • Hiện tại = domain models frontend (src/lib/domain/models); schema Prisma thật = Phase 2.

Nhóm entity

NhómEntityTrạng thái
Shared SpineTenant, TenantSettings, User, Role, Membership, Payment, PayoutRequest, Notification, MediaAsset, CmsPage, Coupon, AuditLogplanned (models sẵn)
Booking coreListing, RoomType/Unit, RatePlan, Availability, PriceCalendar, Reservation, Guest, Reviewpartial (có models, chưa persist)
Vertical extensionsAffiliate/ReferralCode/Commission · Restaurant/Table/MenuItem · Tour/Experience · HealthProvider/TreatmentPackage/PatientProfile/CarePlanplanned (extend Reservable)
Intelligence store (tách)Place, Review, KnowledgeFact, Feature, Score, EvaluationReportplanned (schema riêng, Phase 4)

Quy tắc tránh

  1. Không db-per-tenant / schema-per-tenant.
  2. Không khoá "Hotel/Room" — dùng Listing/Inventory/Reservation.
  3. Role gắn vào Membership (user × tenant), không vào User.
  4. Payment polymorphic (target type) — Booking/F&B/Medical dùng chung.
  5. PHI (PatientProfile/CarePlan) mã hoá + audit.

Khi thêm entity mới

  • Khai báo ở DATABASE_BLUEPRINT (group, entity, state).
  • Extend entity lõi, không tạo bảng song song khoá theo ngành.
  • Thêm tenant_id + RLS nếu tenant-scoped.