So I have this application that would have multiple modules, from project management to accounting modules. The question is should I have one database per client (company) or o
In theory, multiple databases will be better for performance. That is, if you could put them on separate disk controllers. But in actuality they will most probably all be on the same disk, so there will probably be no performance gain. Plus, additional disks are better utilized as additional members of RAID arrays than as additional separate logical disks to which you can offload data.
From the point of view of maintenance, multiple databases are going to be a nightmare. Every ALTERation to the database will need to be made N times, where N is the number of clients. Of course you will never do that by hand, so you will always have to do it programmatically, and pretty soon you will start appreciating how easy things would be if you could just do the same ALTERations with a few clicks on the management console instead of having to write code to do them for you every time.