Rogue85, но как по мне, удобнее всего п.2, слейте все базы в одну, при этом изменив структуры таблиц так, что бы идентифицировать какому клиенту принадлежит конкретная запись в новой базе. Еще возможно будет нужна дополнительная таблица для хранения всех идентификаторов.
Проще всего в каждую таблицу добавить поле и писать в него уникальный идентификатор клиента, например UUID4, или base64 по имени клиента или названия организации, при необходимости будет возможность восстановить исходные данные о владельце записей.
Правки кода минимальны, в запросах на запись добавится новое поле, в запросах на чтение/редактирование/удаление добавится проверка значения нового поля. На клиенте нужно реализовать или получение идентификатора на лету по данным клиента, или запрашивать на сервере из доп. таблицы
Rogue85, тут больше вопрос в том, какое решение будет более удобным с точки зрения реализации и дальнейшей поддержки. Если у вас уже есть готовая связка работающая как вам необходимо, и вы хотите сделать для всех клиентов единую точку входа, можно накидать клиентскую часть как душе угодно, а бекенд реализовать в виде подобия балансировщика нагрузки. Отличие только в том, что бекенд не будет распределять нагрузку, а перенаправлять запросы на нужные сервера, получать данные и отдавать на клиент. Эдакая виртуальная реализация usb-hub.
Rogue85, согласен с DevMan, все что написано на PHP на каждый запрос к серверу выполняет скрипт заново, а после выполнения скрипта сервер отдает ответ на клиент и убивает процесс выполнявший скрипт. Это если в общих чертах.
Rogue85, если в существующем решении у вас уже реализован backend с использованием стека который вы указали, можно обойтись малой кровью, но полностью без изменений не получится.
Проще всего в каждую таблицу добавить поле и писать в него уникальный идентификатор клиента, например UUID4, или base64 по имени клиента или названия организации, при необходимости будет возможность восстановить исходные данные о владельце записей.
Правки кода минимальны, в запросах на запись добавится новое поле, в запросах на чтение/редактирование/удаление добавится проверка значения нового поля. На клиенте нужно реализовать или получение идентификатора на лету по данным клиента, или запрашивать на сервере из доп. таблицы