LightSpeed ​​и мультитенантные базы данных - PullRequest
1 голос
/ 01 марта 2012

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

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

Есть ли хороший подход с LightSpeed, чтобы сделать это?

Ответы [ 2 ]

3 голосов
/ 23 апреля 2012

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

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

Client1_Customer
Client2_Customer

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

1 голос
/ 24 апреля 2012

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

Очень гладко.

...