Backand — использовать собственный идентификатор строки БД в качестве первичного ключа

#backand

#backand

Вопрос:

Можно ли указать свой собственный идентификатор строки в объектах backand? Я хочу сформировать взаимно однозначные отношения в базе данных, где у меня есть два объекта: userPrivateData и userProfile

Я хотел бы использовать идентификатор собственного внутреннего пользовательского объекта Backand в качестве первичного ключа для обоих объектов. Итак, в основном идентификатор пользователя. Причина этого: с помощью REST api вы можете получить доступ к отдельным элементам с помощью GET /1/objects/{name}/{id}

Поскольку я не знаю идентификатор строки, я хочу использовать другой уникальный идентификатор в качестве первичного ключа, который я знаю — мой идентификатор пользователя.

Возможно ли это? Возможно, у меня неправильная концепция, в своих документах они много говорят об отношениях «один ко многим» и тому подобном, но не об отношениях «один к одному».

Ответ №1:

Я думаю, что ваша модель JSON будет выглядеть примерно так.

     [
  {
    "name": "items",
    "fields": {
      "name": {
        "type": "string"
      },
      "description": {
        "type": "text"
      },
      "user": {
        "object": "users"
      }
    }
  },
  {
    "name": "users",
    "fields": {
      "items": {
        "collection": "items",
        "via": "user"
      },
      "allofuserprivatedata": {
        "collection": "userPrivateDataThings",
        "via": "userId"
      },
      "email": {
        "type": "string"
      },
      "firstName": {
        "type": "string"
      },
      "lastName": {
        "type": "string"
      },
      "userProfile": {
        "object": "userProfile"
      }
    }
  },
  {
    "name": "userProfile",
    "fields": {
      "userid": {
        "collection": "users",
        "via": "userProfile"
      },
      "fieldOne": {
        "type": "string"
      },
      "fieldTwo": {
        "type": "boolean"
      }
    }
  },
  {
    "name": "userPrivateDataThings",
    "fields": {
      "field1": {
        "type": "string"
      },
      "field2": {
        "type": "float"
      },
      "userId": {
        "object": "users"
      }
    }
  }
]
  

Используйте коллекцию, когда вам нужно от 1 до многих.
Используйте объект, когда требуется соотношение 1 к 1.

Когда вы выполняете GET для пользователя с помощью deep:true, данные вложенных отношений вернутся в ответ.