building a potentially high-volume PHP-based CRM on Google App Engine (MySQL DB Design Question--Building It Right The First Time)

I am building a CRM that will potentially be used by hundreds of companies and need on-demand scalability.

I have found Google App Engine provides this however I am confused with regard to their database support.

I am only familiar with MySQL and although I see they support this (Google Cloud SQL), their initial limit is 500MB (approval needed beyond this). Two companies using my CRM can easily use 500MB of SQL storage. Will they keep allowing me to upgrade storage space?

Also, how would one suggest I design the database so I don't run into issues later on?

The CRM will have approximately 20 tables and I'd like to keep all the companies records (table rows) together so I can easily make improvements/fixes but the number of rows per company will easily grow by 500K every 6 months.

A year down the road, I don't want to run into any bottlenecks because I have 50 companies having 50,000,000 rows total.

How can I plan ahead for this?

Please advise, thanks.
MarkProgrammerAsked:
Who is Participating?
 
gheistCommented:
Make a new database per company for sad divoce cases.
0
 
MarkProgrammerAuthor Commented:
Sad divoce cases?

Is that standard practice to create a separate database for each company or is it possible to just have one with MySQL and Google Cloud?
0
 
gheistCommented:
You know... SQL injections better apply to one company... Not one company digging others data when nobody sees.
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
MarkProgrammerAuthor Commented:
I figured I would solve that problem by properly escaping everything .. So putting that aside, is it possible to just have one database?
0
 
MarkProgrammerAuthor Commented:
Ok so Google Cloud only supports upto 100GB in size so obviously each company will need their own database however what can I use to quickly add or change columns when I have 100 databases?
0
 
gheistCommented:
Assumption about proper escaping is WRONG.
Client side script can check database structure.
0
 
gheistCommented:
by client side I meant part of web application, like client of DB...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.