Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 38371
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T14:41:51+00:00 2026-05-10T14:41:51+00:00

In a database-centric application that is designed for multiple clients, I’ve always thought it

  • 0

In a database-centric application that is designed for multiple clients, I’ve always thought it was ‘better’ to use a single database for ALL clients – associating records with proper indexes and keys. In listening to the Stack Overflow podcast, I heard Joel mention that FogBugz uses one database per client (so if there were 1000 clients, there would be 1000 databases). What are the advantages of using this architecture?

I understand that for some projects, clients need direct access to all of their data – in such an application, it’s obvious that each client needs their own database. However, for projects where a client does not need to access the database directly, are there any advantages to using one database per client? It seems that in terms of flexibility, it’s much simpler to use a single database with a single copy of the tables. It’s easier to add new features, it’s easier to create reports, and it’s just easier to manage.

I was pretty confident in the ‘one database for all clients’ method until I heard Joel (an experienced developer) mention that his software uses a different approach — and I’m a little confused with his decision…

I’ve heard people cite that databases slow down with a large number of records, but any relational database with some merit isn’t going to have that problem – especially if proper indexes and keys are used.

Any input is greatly appreciated!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T14:41:52+00:00Added an answer on May 10, 2026 at 2:41 pm

    Assume there’s no scaling penalty for storing all the clients in one database; for most people, and well configured databases/queries, this will be fairly true these days. If you’re not one of these people, well, then the benefit of a single database is obvious.

    In this situation, benefits come from the encapsulation of each client. From the code perspective, each client exists in isolation – there is no possible situation in which a database update might overwrite, corrupt, retrieve or alter data belonging to another client. This also simplifies the model, as you don’t need to ever consider the fact that records might belong to another client.

    You also get benefits of separability – it’s trivial to pull out the data associated with a given client ,and move them to a different server. Or restore a backup of that client when the call up to say ‘We’ve deleted some key data!’, using the builtin database mechanisms.

    You get easy and free server mobility – if you outscale one database server, you can just host new clients on another server. If they were all in one database, you’d need to either get beefier hardware, or run the database over multiple machines.

    You get easy versioning – if one client wants to stay on software version 1.0, and another wants 2.0, where 1.0 and 2.0 use different database schemas, there’s no problem – you can migrate one without having to pull them out of one database.

    I can think of a few dozen more, I guess. But all in all, the key concept is ‘simplicity’. The product manages one client, and thus one database. There is never any complexity from the ‘But the database also contains other clients’ issue. It fits the mental model of the user, where they exist alone. Advantages like being able to doing easy reporting on all clients at once, are minimal – how often do you want a report on the whole world, rather than just one client?

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 69k
  • Answers 69k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • added an answer Did you try the x64 Trace Diagnostics tools? I haven't… May 11, 2026 at 12:26 pm
  • added an answer There is may be something else available but I have… May 11, 2026 at 12:26 pm
  • added an answer Bind the text field to selection.command, and programmatically set the… May 11, 2026 at 12:26 pm

Related Questions

In a database-centric application that is designed for multiple clients, I've always thought it
In a database prototype, I have a set of fields (like name, description, status)
In a recent project the lead developer designed a database schema where larger tables
My organization is getting ready to implement a new system, which is a asp.net
I've been a web developer for some time now, and have recently started learning

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.