The verdict in three sentences
Choosing between a shared database, schema per tenant and database per tenant adds 10 to 25% to the initial build cost of a SaaS, depending on the isolation level you target. On hosting, the bill moves from EUR 200 to 2,000 (about USD 220 to 2,200) per month between 50 and 1,000 customers, and architecture decides the slope of that curve. Switching models after 2 years in production usually costs 3 to 5 times more than choosing well upfront, which is why a costed decision at design stage pays off.
The three models compared
| Criterion | Shared database (tenant_id column) | Schema per tenant | Database per tenant |
|---|---|---|---|
| Extra development cost | + 10% | + 15 to 20% | + 20 to 25% |
| Data isolation | Logical (RLS) | Strong | Complete |
| Hosting cost per customer | Very low | Medium | High |
| Schema migrations | One operation | N scripted operations | N scripted operations |
| Practical ceiling | 10,000+ tenants | 500 to 2,000 tenants | 50 to 300 tenants |
| Backup and restore of one tenant | Complex | Simple | Very simple |
| Privacy and enterprise sales argument | Medium | Good | Excellent |
A shared database with PostgreSQL Row Level Security remains the default for a high-volume SMB SaaS. Schema per tenant is a good compromise for a mid-sized B2B vendor. Database per tenant is justified when your customers are banks, hospitals or governments demanding physical isolation, sometimes in a specific location such as Canadian data residency.
Hosting cost by number of customers
2026 estimates for a typical B2B SaaS (Node.js or Next.js app, managed PostgreSQL, object storage, backups), hosted on AWS ca-central-1 (Montreal) or Azure Canada Central.
| Customers | Shared database | Schema per tenant | Database per tenant |
|---|---|---|---|
| 50 | USD 220 / month | USD 280 / month | USD 650 / month |
| 200 | USD 380 / month | USD 550 / month | USD 2,000 / month |
| 500 | USD 700 / month | USD 1,100 / month | USD 4,400 / month |
| 1,000 | USD 1,200 / month | USD 2,200 / month | USD 8,200 / month |
| Cost per customer at 1,000 | USD 1.20 | USD 2.20 | USD 8.20 |
These figures exclude observability (USD 110 to 450 per month) and on-call. They show that beyond 300 customers, database per tenant is only profitable if your average price exceeds USD 165 to 220 per month.
Privacy, isolation and the cost of a late migration
Neither the GDPR nor Canada's PIPEDA mandates a specific model, but both require appropriate safeguards: separation, encryption, access logging, the ability to delete or export one customer's data. In a shared database this means automatically tested RLS policies and regular audits, because a single query missing its tenant_id filter can expose every customer.
Migrating from a shared database to database per tenant after 2 years takes on average 40 to 90 development days, i.e. EUR 25,000 to 60,000 (USD 27,000 to 65,000), versus EUR 8,000 to 15,000 of extra cost if planned from day one. A hybrid approach is often the most profitable: shared database for SMB plans, dedicated database sold as an Enterprise option.
Mini case study
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
Ryan, CTO of a Toronto vendor of practice management software for accounting firms, expects 400 customers within 3 years at USD 130 per month. He compares: shared database (MVP budget EUR 90,000, about USD 98,000, hosting USD 600 per month at 400 customers) versus database per tenant (EUR 108,000, USD 3,600 per month). Over 3 years, the cumulative hosting gap reaches about USD 54,000. He chooses a hybrid: shared database with RLS for 95% of customers, plus a dedicated database option at USD 270 per month extra for the 20 largest firms, generating USD 65,000 of additional annual revenue for EUR 12,000 of extra development.
FAQ
Which model for an MVP?
Shared database with RLS in 80% of cases. It costs 10% more than a single-tenant app and holds up to several thousand customers.
Does schema per tenant work with Prisma or Supabase?
Yes, but migrations must be replayed on each schema. Beyond 1,000 schemas, migration runs often exceed 30 minutes.
Can an enterprise customer require a dedicated database?
Yes, it is common in banking and healthcare. Charge USD 165 to 550 per month extra to cover hosting and operations.
How do you test tenant isolation?
With automated tests that try to read another tenant's data on every deployment, plus an annual penetration test at EUR 8,000 to 15,000.
Does health data hosting change the math?
Yes: in Canada, provincial rules such as Ontario's PHIPA push toward certified hosting that raises the bill by 30 to 60%. Database per tenant then becomes even more expensive.
Let's scope your project. We cost your multi-tenant architecture in a 2-hour workshop: isolation model, hosting projection at 50, 500 and 1,000 customers, development budget of EUR 60,000 to 200,000 depending on scope. Detailed quote within 48 h. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.