Welcome to the community, @Thirumalai_M!
Am I understanding correctly that the same application is to be used by multiple companies but with the same backend servicing all? Or will it be different deployments with a backend for each deployment? Generally you will want to store data for entities in collections so you’d want a users collection, an employees collection etc. Is the isolation of customer data so that you can give access to the data on a database level or are there other reasons? Will your clients be able to access the database directly or only via your application?
So per your questions:
- You’ll definitely not want one collection per client. (But you may want to store the client name in a field in each document and have just one database - depending on what your reasons are for isolating customer data)
- It would create data modeling issues. Normally a collection is something like ‘employees’ where you store documents like
{"name": "Naomi", "team": "Engineering Communications", ...}. And then you’d have more collections for data about other things like maybe contracts or offices. If you only have one collection that would potentially be difficult.
I’m not sure what you mean with questions 3 and 4 - can you provide more information?