Я хочу создать мультитенантное приложение с помощью Laravel. Я использую архитектуру базы данных одна база данных, несколько таблиц клиентов.
Я хочу динамически создавать новый набор таблиц, связанных с арендатором, всякий раз, когда кто-то регистрирует новую учетную запись клиента.
Обратите внимание на следующее:
Таблица tenants содержит все регистрации клиентов. У каждого арендатора будут выделенные столы только для них. В этом примере у каждого арендатора есть собственная выделенная таблица клиентов.
Ex:
Таблицы tenant01 будут иметь префикс tenant01. (tenant01.customer - только клиенты tenant01)
Таблицы tenant02 будут иметь префикс tenant02. (tenant02.customer - только клиенты tenant02)
Я не хочу использовать несколько баз данных, поскольку они дорогостоящие, и я не хочу использовать одну таблицу для всех клиентов, так как в системе будет много клиентов / продуктов и т. Д.
Я планирую идентифицировать клиента в процессе регистрации и установить имя клиента (или код / идентификатор) в сеансе. пример: tenant440
После этого во всех классах красноречивых моделей, связанных с клиентами, я мог динамически добавлять этот префикс (например, tenant440) в имя таблицы следующим образом:
<?php
class Customer extends Eloquent {
protected $tenant_name = //get name/code from the session. ex: tenant440
//table name will become tenant440.'customers'
protected $table = $tenant_name.'customers';
?>
Это правильный способ добиться этого? Как это сделать проще всего? Вы знаете какие-либо ресурсы / пакеты / библиотеки для этого?
Заранее спасибо!