هوک (Hook) های Sequelize توی سطح جاوااسکریپت هستن نه store procedure
وقتی توی Sequelize رابطه رو ایجاد می کنید به صورت پیشفرض onUpdate روی CASCADE هست و onDelete روی SET NULL هست.
برای تعریف alias ها باید از دو طرف عمل کنید.
از هر دو طرف رابطه رو تعریف می کنیم. یعنی نصف alias توی مدل ضعیف و نصف دیگش توی مدل قوی میره.
از هر دو طرف تعریف کردن روابط باعث میشه فانکشن های mixin به هر دو مدل اضافه بشه.
برای ایجاد رابطه یک به چند از belongsTo و hasMany استفاده میشه.
نکته مهم اینه که این دوتا متد نمیان برات unique بودن FK رو چک کنن. چیزی که چک کردم این بود که مستقیم توی دیتابیس اومدم رکوردی insert کردم که FK تکراری داشتن و بدون دادن ارور رکورد رو ثبت کرد.
در این وضعیت ما یه جدول/مدل وسط داریم.
توی جدول وسط هیچ alias ای تعریف نمیشه. چونکه هیچ مدل دیگری اون جدول وسط رو رفرنس نمیکنه.
برای ایجاد رابطه چند به چند از belongsToMany استفاده میشه.
حالا برای اینکه این دوتا رو به هم وصل کنیم میگیم که یه مدل RolePermission داریم و توی اون رابطه رو میزنیم.
داستان otherKey و foreignKey رو توی عکس زیر ببینید:
https://stackoverflow.com/questions/49467654/what-methods-mixins-sequelize-adds-to-the-models-when-an-association-is-made