Your question seems quite broad but I'm gonna try to enlight you a bit.
On one hand you have that argument:
Client don't want to use magento as he is telling if thousands of
sellers upload millions of Products to site then database may crash,
performance will go & site may destroy.
On the other hand you're asking:
Do we need to use Separate Database for both - Upload Products in Php
database and then transfer to magento database or do we need to save
the products uploaded by seller in single database.
Here you have a choice to make and that will basically give you the paths to follow to achieve what you want:
- Use 2 databases (1 for Magento, 1 for your external website) to have better performance
- Create a complex system for both your external site and Magento so they can talk to each other and deal with your marketplace system.
With this choice, you increase the time it'll take to develop everything (as you have to deal with two different systems) but take care of performance at low cost (NB: I don't guarantee that having two different systems will give you better performance. Depending on how well coded is the system it could make everything worse)
- Use a single database only with Magento
- Develop a complex system only for Magento
- Pay for a better server with high performance hardware
With this choice, you decrease the time it'll take to develop everything as you only have to deal with Magento but performances need to be taken care of by paying for better servers.
I'm not gonna bring the
money=time equation to the table but I guess you got what I said. Those two options are totally different and you need to think wisely about it before starting developing anything.
My 2 cents
This question is kind of opinion based so here's mine. If I had a decision to make, I'll go for choice 2. Don't pick that option because I said I would, make your own decision, talk with other people part of the projects and ensure you know everything about your project ;)
Assuming you picked Choice 1
The general idea would be to have a very simple database on your external website to store the following entities:
Then you can implement the review system directly in this external website so an admin can approve/reject uploaded products.
After that, I reckon you can setup a cron that pushes the new data to Magento on a regular basis depending on how much data you're dealing with.
You'll obviously have to use Magento APIs to push those data, for example:
Assuming you picked Choice 2
As this is not your question I'm just gonna throw some ideas here and there:
- Don't reinvent the wheel, there's some Marketplace extensions out here, compare them, buy one of them and modify it to fit your needs, it'll save you time. For example: https://www.magentocommerce.com/magento-connect/marketplace.html
- There's plenty of good hosting companies for Magento out there, contact them, explain them what your needs are and see how much it'll cost you to setup a good server. Examples: Nexcess, Sonassi, ByteNL, MageMojo.