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.
MySQL ServerCloud ServicesGoogle Workspace

Avatar of undefined
Last Comment
gheist

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
gheist

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
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?
gheist

You know... SQL injections better apply to one company... Not one company digging others data when nobody sees.
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?
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes
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?
gheist

Assumption about proper escaping is WRONG.
Client side script can check database structure.
gheist

by client side I meant part of web application, like client of DB...
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.