Как оптимизировать запросы, когда одно приложение используется несколькими организациями и использует одну и ту же базу данных? - PullRequest
0 голосов
/ 31 марта 2020

Я экспериментирую с несколькими различными технологиями, такими как graphql, mysql. закрепить и отреагировать.

Я придумал забавное приложение, в котором у меня было бы несколько организаций, использующих одно и то же приложение и одну и ту же базу данных. Разница будет в URL. Организация1 будет иметь www.myApp.com/organisation1

Каждое приложение будет содержать список сотрудников, и каждый сотрудник будет иметь ссылку на одну организацию в данный момент времени, но также может принадлежать многим организациям в отдельные периоды времени (от многих ко многим отношениям). ).

дБ модель:

enter image description here

Часть 1:

Допустим, я хочу запросить мою базу данных, но из app1 тогда это будет выглядеть примерно так:

SELECT Name from Employee where organisationId=1

В другом сценарии у меня будет application2, и тогда запрос будет выглядеть так:

SELECT Name from Employee where organisationId=2

Как я буду поддерживать, из какой организации я иду? На данный момент я читаю URL, который является www.myApp.com/organisation1

И в зависимости от того, какая это организация, я добавляю его в заголовок в каждом запросе. Затем мой бэкэнд берет параметр и запрашивает базу данных. Это оптимально? есть ли лучший способ?

Part2:

Есть ли какой-нибудь способ, которым я мог бы кэшировать / настроить организацию, к которой я обращаюсь, в mysql db, чтобы Мне не нужно включать параметр в запросе? Опять же, это оптимально?

Я пытаюсь учиться здесь и спрашиваю некоторые указания, чтобы я делал это правильно.

...