How many DB in production

I am creating an application that will be run online, with many companies/clients running the software.

What is best practice. Do I create one massive DB that they all share, and use a company code to select the correct data, or do I give each client their own DB, to be defined at sign on?