Couchbase для каждого подхода к пользовательским данным

возникли небольшие проблемы с поиском правильного способа моделирования данных для каждого пользователя в Couchbase и синхронизации через Couchbase Mobile для конкретных пользовательских данных. В CouchDB у вас есть отдельная база данных для каждого пользователя. Каков наилучший подход в кушетке?


person user1661621    schedule 10.03.2015    source источник
comment
может быть, вы можете сделать userID префиксом его ключей для достижения такой мультиарендности?   -  person Simon Baslé    schedule 10.03.2015


Ответы (2)


В Couchbase нет такого понятия, как «пользовательские данные». Его универсальный и открытый для ваших проектов.

Обычно, когда вы разрабатываете свою модель предметной области для Couchbase, вы вводите метаданные в свою ключевую структуру.

Например: Ключ для учетной записи: "Acc#123456789" - где префикс "Acc#" говорит о типе ключа, а "123456789" добавляет конкретный экземпляр адреса этого ключа... в результате уникальный ключ. Точно так же, если вы хотите закодировать связанный адрес с учетной записью, вы должны разработать следующий ключ: «Acc#123456789#Addr», где постфикс «#Addr» определяет тип ключа для объекта адреса.

Теперь, если вы хотите иметь пользовательские ключи, вы просто вводите идентификатор пользователя в значение ключа (из приведенного выше примера):

  • ключ "Acc#123456789" превратится в "usr#12345#Acc#123456789"
  • ключ "Acc#123456789#Addr" преобразуется в "usr#12345#Acc#123456789#Addr"

Узнайте больше о моделировании данных Couchbase здесь и ключи и метаданные

person user1697575    schedule 10.03.2015

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

  1. Создайте свои документы с user_{Guid} считайте Guid своим идентификатором пользователя
  2. Создайте все другие связанные документы с тем же Guid, например credential_{Guid}, чтобы, когда пользователь вошел в систему, мы могли иметь идентификатор пользователя в сеансе и получать всю информацию об этом пользователе.
person Jinesh Jain    schedule 11.03.2015