Các lựa chọn: shared collections với tenantId, database per tenant, hoặc cluster/project per tenant. Shared collections tiết kiệm và dễ vận hành nhưng cần index prefix tenantId và authorization chặt. Database/cluster per tenant cách ly tốt hơn nhưng operations phức tạp và tốn chi phí hơn.
Ví dụ index shared collection:
javascript
db.orders.createIndex({ tenantId: 1, createdAt: -1 })Cần đảm bảo mọi query đều filter tenant, tránh data leak, và có backup/restore strategy theo tenant nếu business yêu cầu.