I am working on a PHP application that intends to ease company workflow and project management, let\'s say something like Basecamp and GoPlan.
I am not sure on what
The following screencast explains how it's done on salesforce.com. They use one database with a special column OrgId which identifies each tenant's data. There's much more to that so you should look into this. I'd go with their approach.
There's another great article about that on MSDN. It explains in depth when you should use a shared or isolated approach. Remember that having a shared DB for all your tenants has some important security implications and if all of them share same DB objects you might want to use [row level security] - depending on the DBMS you use (I'm sure it's possible in MS SQL Server and Oracle, probably in IBM DB2 also). You can use tricks like row level security in mySQL to achieve similar results (views + triggers).