LightSpeed ​​и мультитенантные базы данных

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

Я хотел бы убедиться, что авторизованный пользователь может просматривать данные только одной организации без необходимости каждый раз явно кодировать такое ограничение.

Есть ли хороший подход с LightSpeed ​​для этого?

2 ответа

Одним из возможных решений является создание отдельных таблиц для каждого арендатора, то есть таблиц с префиксом определенного типа идентификатора арендатора.

Например, если у вас есть таблица клиентов, вы можете добавить ее к имени клиента

Client1_Customer
Client2_Customer

Lightspeed имеет встроенную стратегию именования DefaultNamingStrategy, которую можно заменить собственной реализацией INamingStrategy. Все, что вам нужно сделать, это реализовать GetTableName, чтобы вы могли определить текущего арендатора и выбрать соответствующее имя таблицы.

Я обнаружил замечательную функцию в LightSpeed, которая называется QueryFilterAttributes. Я могу создать атрибут фильтра организационного запроса, который позволит внедрить идентификатор организации в запрос, очень похожий на собственное мягкое удаление LightSpeed.

Очень гладко

Другие вопросы по тегам