Think Design: I have many applications that share the same user database! Other tables are shared as well such as user activity logs, purchases etc
1) Anyways my question is if I was to make all applications just use 1 database for everything! Would I have any problems with scalability? Or any other problem doing this? Is it better to have 1 database ? ? Or worst?
2) Or should I just let every application have their own database, then use web service to share the common tables between the applications?
The more processes you have accessing a shared resource, the more likely you are to get into scaling/performance and timing issues.
Even if your applications are small, I would recommend against this.
Probably the worst part of this whole venture would be the unnecessary complexity you will be adding to your application set. After all, programming is not linear, and simply adding a single table to interact with increases your overall complexity by more than a factor of one.
At the very least, create a service for interacting with commonly used tables and have your applications make requests through the service.
I empathize with your desire to merge resources into a common location, but I think in this case you will be setting yourself up for more hardships down the line. I just don’t think it’s worth it.
In response to your edits… I’d go with option (2).