Когда использовать hasMany и относится к отношениям в Loopback 4? - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть один простой вопрос о LoopBack 4 и отношениях.

Давайте возьмем, к примеру, официальный пример TodoList.

В TodoList.model есть определение @hasMany, у меня нетвопросы там.Мой вопрос касается отношения BelongsTo, также необходимо ли определить @belongsTo в todo.model? всегда необходимо определить оба отношения или как узнать, какой выбрать?Если необходимо только одно отношение, почему нужно выбирать два варианта?В чем разница, если я выберу одно из другого?

У меня много сомнений по поводу этой темы.

1 Ответ

0 голосов
/ 23 апреля 2019

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

Как видно из документации здесь ,

Отношение hasMany обозначает соединение модели «один ко многим» с другой моделью посредством ссылочной целостности.Ссылочная целостность обеспечивается ограничением внешнего ключа на целевой модели, которое обычно ссылается на первичный ключ в исходной модели.Это отношение указывает, что каждый экземпляр декларирующей или исходной модели имеет ноль или более экземпляров целевой модели.Например, в приложении с клиентами и заказами у клиента может быть много заказов

Таким образом, в случае, когда вам нужно иметь отношение FK 1: n, вы будете использовать это.Но это будет использоваться, когда ФК находится на «одной» стороне.Это означает, что таблица customer (one) будет иметь столбец orders (many) в виде массива FK с таблицей Order.

Как видно из документации здесь ,

Отношение ownTo обозначает соединение модели «один к одному» с другой моделью посредством ссылочной целостности.Ссылочная целостность обеспечивается ограничением внешнего ключа в исходной модели, которое обычно ссылается на первичный ключ в целевой модели.Это отношение указывает, что каждый экземпляр декларирующей или исходной модели принадлежит ровно одному экземпляру целевой модели.Например, в приложении с клиентами и заказами заказ всегда принадлежит ровно одному клиенту

Итак, в случае, когда вам нужно иметь отношение FK 1: n, вы будете использовать это.Но это будет использоваться, когда ФК на стороне «многих».Это означает, что таблица Order (many) будет иметь столбец customer (один) как FK с таблицей Customer.Массив здесь не нужен.

В большинстве случаев вы будете использовать связи для таких случаев.Это работает практически во всех сценариях.Я не сталкивался с какими-либо конкретными случаями использования hasMany.

...