I am in the midst of creating a forums hosting site.
1. It has to be highly scalable, so I doubt a single MYSQL db with TONS
of "subforums that simulate full forums" would do.
2. Also regarding scalablity, I hope to "Add capacity" as and when its
needed. So i'll have one server running initially, and when it gets too
crowded, i'll get two servers etc.
3. I will be providing a user with a "dashboard" that allows him to view
all his subscribed posts across ALL forums. So lets say a user is a
member of 25 forums, this dashboard view will allow the user to view all
his posts across all the forums.
Does anyone have advice that could point me in the right direction?
I have solved the scalability issue WITHIN a forum (code can handle
million + posts easy), but I havent solved the issue of scaling MULTIPLE
I dont think putting EVERYTHING on one single DB would be a good idea,
considering that a single forum could grow huge, and have a million posts.
I am thinking that the solution would possibily involve like a fixed
amount of forums per db/server, and then drop in a new server everytime
that limit is reached.
Regarding point 3, where a user has a "dashboard" that allows him to
view all subscribed posts across ALL forums, an obvious solution would
be to have a user-centric table that also stores copies of all his
subscribed post IDs (including last viewed time stamp etc), eliminating
the need to query across all separate DBs.
Am I heading in the right direction?
Also, does there exist any php package that helps ease the process of
"deciding which Server/database to connect to"?
For example, someone accesses FORUM A, so the script would automatically
know to direct all queries to the DB in SERVER 1 etc, and if i try to
access FORUM J, it would connect to SERVER 2 etc. I could easily hard
code this, but I was thinking "what if internal IP addresses change, or
I decide to migrate a busy forum to a server of its own etc", so perhaps
there is a better available packaged solution designed for this task.
Appreciate any advice!