возникли небольшие проблемы с поиском правильного способа моделирования данных для каждого пользователя в Couchbase и синхронизации через Couchbase Mobile для конкретных пользовательских данных. В CouchDB у вас есть отдельная база данных для каждого пользователя. Каков наилучший подход в кушетке?
Couchbase для каждого подхода к пользовательским данным
Ответы (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 здесь и ключи и метаданные
Вы можете создавать свои документы таким образом, чтобы упростить извлечение всех связанных объектов. например
- Создайте свои документы с
user_{Guid}
считайтеGuid
своим идентификатором пользователя - Создайте все другие связанные документы с тем же
Guid
, напримерcredential_{Guid}
, чтобы, когда пользователь вошел в систему, мы могли иметь идентификатор пользователя в сеансе и получать всю информацию об этом пользователе.