hasOne – додає зовнішній ключ до цільового міксину та сингулярну асоціацію до джерела. belongsTo – додайте зовнішній ключ і міксини єдиної асоціації до джерела. hasMany — додає зовнішній ключ до цільових і множинних міксинів асоціації з джерелом.
Створення асоціацій у секвелізі виконується шляхом виклику однієї з функцій belongsTo / hasOne / hasMany / belongsToMany для моделі (схема вихідної таблиці, якщо ви знаєте RDBMS) і надання іншої моделі як першого аргументу функції (цільової таблиці).
У Sequelize є два способи визначення обмежень зовнішнього ключа:
- Шляхом визначення асоціації між двома моделями (рекомендовано).
- Використання опції посилань декоратора @Attribute.
Щоб загорнути, include приймає масив об'єктів. Ці об’єкти є власними запитами, по суті, просто запитами Sequelize у нашому основному запиті. У кожному запиті на включення ми вказуємо пов’язану модель, звужуємо наші результати за допомогою where і надаємо псевдоніми нашим повернутим рядкам за допомогою as.
Відносини «один-до-одного»: ви, як користувач, можете мати один (hasOne) профіль. І, звичайно, діє зворотне. Профіль (належить) Користувача. Користувач не може мати більше одного профілю, а профіль не може належати кільком користувачам.
Асоціація HasOne є використовується для створення зв’язку «один-до-одного» між двома моделями. У відносинах «один-до-одного» рядок однієї таблиці пов’язаний з одним рядком іншої таблиці. Найпоширенішим типом стосунків «один-на-один» є такий, коли одна сторона є обов’язковою, а інша – необов’язковою.