مروان محمود3 نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 كيف يمكننى انشاء علاقة many to many فى مكتبة sequelize 1 اقتباس
0 شرف الدين حفني نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 علاقة الmany to many أو للإختصار nm حتى يتم إنشاؤها نحتاح أولاً إنشاء جدول حتى يتم فيه تخزين المفتاح الرئيسي للجدولين المراد عمل علاقة بينهما فمثلاً table user{ name,age,id } table article{ title,content,id } table user_article{ user_id(references user(id)), article_id(references article(id)) } هنا لدينا جدولين هما user و article , المستخدم يمكنه كتابة عدة مقالات, كما أن المقالة الواحدة ممكن كتابتها من قِبل عدة مستخدمين , فإذا بينهما علاقة كثير:كثير (may to many) , الحل أننا قمنا بإنشاء جدول ثالث يربط بين الجدولين السابقين, فإذا يجب تطبيق هذا الأمر في sequelize كما في المثال الآتي: const User_Article = sequelize.define('user_article', {}, { timestamps: false }); بعد أن قمنا بإنشاء الجدول الرابط بينهما نحتاج أن نربطه بهم في العلاقة فردي:فردي كنا نستخدم الدالة model.hasOne بينما في العلاقة فردى:كثير نستخدم model.hasMany من طرف وmodel.balongsTo من طرف أخر بينما في هذا النوع من العلاقات كثير:كثير نستخدم model.belongsToMany كما في الشفرة بالأدنى User.belongsToMany(Article, { through: User_Article }); Article.belongsToMany(User, { through: User_Article }); بهذا الشكل قد انشأت علاقة كثير:كثير بين الجدولين, مع مراعاة أن يتم كتابة الجدول الرابط في الخاصية through بالإضافة أنه ليس من الإلزامى ان تقم بإنشاء وتعريف الجدول الرابط بنفسك فإن sequelize ستقوم بذلك بالنيابة عنك,ولكن يفضل إنشاؤه بنفسك في حالة اردت التعديل على إحدى الخصائص الإفتراضية أو إضافة أحد الأعمدة اقتباس
0 Salah Eddin Beriani2 نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 هذا مثال على علاقة many to many بين User و Profile. const User = sequelize.define('user', { username: DataTypes.STRING, points: DataTypes.INTEGER }, { timestamps: false }); const Profile = sequelize.define('profile', { name: DataTypes.STRING }, { timestamps: false }); أبسط طريقة لتعريف علاقة many to many هي: User.belongsToMany(Profile, { through: 'User_Profiles' }); Profile.belongsToMany(User, { through: 'User_Profiles' }); من خلال تمرير string إلى أعلاه نطلب Sequelize لإنشاء نموذج يسمى User_Profiles تلقائيًا مثل الجدول من خلال (المعروف أيضًا باسم جدول الوصلات) مع عمودين فقط معرف المستخدم ومعرف الملف الشخصي سيتم إنشاء مفتاح فريد مركب على هذين العمودين. اقتباس
0 Hassan Hedr نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 بعد إنشاء كلا الجدولين نقوم بإضافة العلاقة بينهما لكل جدول على حدى وربطهما بجدول الربط مع تحديد اسم الحقل الدال على المفتاح الرئيسي في كلا الجدولين لنفترض لدينا الجدولين Parent, Child وجدول ربط Parent_Child فيه تقابلات للمفاتيح الرئيسية من كلا الجدولين بإسم parent_id, child_id // الجدول الأول Parent.belongsToMany( Child, { // اسم جدول الربط through: 'Parent_Child', // اسم المفتاح الدال على الجدول الحالي في جدول الربط السابق foreignKey: 'parent_id' } ) // بنفس الطريقة نربط الجدول الثاني Child.belongsToMany( Parent, { through: 'Parent_Child', foreignKey: 'child_id' } ) اقتباس
السؤال
مروان محمود3
كيف يمكننى انشاء علاقة many to many فى مكتبة sequelize
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.