Мульти-палатная модель и Nosql? - PullRequest
4 голосов
/ 02 мая 2011

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

Как бы я это сделал в базе данных документов? Давайте возьмем mongodb для примера. DBRef путь? Или я застрял в реляционном мышлении? Или вы бы использовали что-то кроме documentdb?

(я довольно новичок в nosql)

1 Ответ

4 голосов
/ 02 мая 2011

Если вам требуется Мультитенсия в MongoDB, вы можете использовать разные коллекции для каждого арендатора. Если данные будут распределены между всеми арендаторами, я бы вместо этого вел список арендаторов для каждой записи следующим образом:

doc: {
  _id: doc1
  ... // your objects here
  tenants: [ tenant1, tenant2, tenant17 ]
}

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

db.mycoll.find({ someField : someValue, tenants : tenant2 });
...