Link to home
Start Free TrialLog in
Avatar of Mark
Mark

asked on

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.
ASKER CERTIFIED SOLUTION
Avatar of gheist
gheist
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Mark
Mark

ASKER

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?
You know... SQL injections better apply to one company... Not one company digging others data when nobody sees.
Avatar of Mark

ASKER

I figured I would solve that problem by properly escaping everything .. So putting that aside, is it possible to just have one database?
Avatar of Mark

ASKER

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?
Assumption about proper escaping is WRONG.
Client side script can check database structure.
by client side I meant part of web application, like client of DB...