#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, данные вложенных отношений вернутся в ответ.