В проектирование такой подход называется multi tenant architecture
смотрите тут
https://www.google.co.th/search?q=multi+tenant+arc...
Для БД, есть разные варианты. Но в целом все сводится:
1) для каждого юзера (tenant) отдельная БД. Удобно тем что можно балансировать данные по разным серверам, в разрезе юзераю. Часто бывает что 1-2 клиента "пухнут" сильно быстрее чем остальные 100
2) в каждой таблице есть поле user_id и это условие добавляется в каждый запрос. Тут сложнее вынести данные юзера на отдельные сервера. Зато если вам нужные какие то отчеты по всем юзерам (f.e. средний количество записей за прошлую неделю), то это один запрос по таблице.