البرمجة

تحديد القيد المركب في Sequelize

عندما نتحدث عن Sequelize وقيود التكرار في قواعد البيانات، يظهر تعريف النموذج الخاص بك الذي يشمل حقول “minor” و”major”. السؤال الرئيسي هو: هل يمكن تحديد الزوج “minor” و”major” كقيد فريد مركب في Sequelize؟

في Sequelize، يمكنك بسهولة تحقيق هذا الهدف باستخدام خاصية التكرار الفريدة المركبة (Composite Unique Constraint). يمكنك تعريف القيد الفريد المركب باستخدام السمة “unique” في نموذجك. دعونا نقوم بتعديل تعريف النموذج الخاص بك لتحقيق هذا الغرض:

javascript
export default function(sequelize, DataTypes) { return sequelize.define('Item', { minor: { type: DataTypes.INTEGER, allowNull: false, }, major: { type: DataTypes.INTEGER, allowNull: false, }, }, { uniqueKeys: { unique_pair: { fields: ['minor', 'major'], }, }, }); }

في هذا التعريف، قمنا بتحديد السمتين “minor” و”major” بشكل فردي، ولكن النقطة المهمة هي في تعريف “uniqueKeys” حيث قمنا بتحديد مفتاح فريد مركب يتألف من الحقول “minor” و”major”. هذا يعني أنه لن يتم السماح بتكرار القيم لهذا الزوج في الجدول.

هذا التعديل يضمن أن القيم للحقول “minor” و”major” ستكون فريدة معًا، وبالتالي يتم تحقيق القيد الفريد المركب الذي تسعى إليه. يمكنك الآن استخدام هذا النموذج في تطبيقك Sequelize بثقة، حيث يضمن لك هذا التعريف تكرار فريد ومركب لقيم الحقول المحددة.

المزيد من المعلومات

بالطبع، دعونا نتعمق أكثر في مفهوم Sequelize وكيف يمكن استخدامه لتحديد قيود التكرار المركبة.

Sequelize هو إطار عمل ORM (Object-Relational Mapping) للغة JavaScript، ويُستخدم للتفاعل مع قواعد البيانات العلاقية. يعد Sequelize ميسرًا للعمل مع قواعد بيانات مختلفة مثل MySQL، PostgreSQL، SQLite، و Microsoft SQL Server.

في الكود الذي قدمته سابقًا، نقوم بتعريف نموذج Sequelize باستخدام الدالة define. يتم تحديد الحقول المختلفة في النموذج باستخدام كائن JavaScript، حيث تُمثل كل خاصية (property) حقلًا في قاعدة البيانات. في هذا السياق، يتم تعريف حقول “minor” و”major” كحقول من نوع DataTypes.INTEGER.

الخاصية الرئيسية التي قدمتها لتحديد القيد المركب هي uniqueKeys. يُستخدم هذا الخيار لتحديد مفاتيح فريدة مركبة تجمع بين عدة حقول. في هذا المثال، تم تعريف مفتاح فريد مركب باسم “unique_pair” يتألف من حقول “minor” و”major”.

هذا يعني أن أي محاولة لإدراج قيم مكررة للزوج “minor” و”major” ستؤدي إلى إثارة استثناء. يتيح هذا لك التحكم بشكل دقيق في البيانات التي يتم إدراجها وضمان عدم تكرارها بناءً على متطلبات تصميم تطبيقك.

يمكن أيضًا أن يتم استخدام Sequelize لتحقيق الكثير من الوظائف الأخرى مثل التحقق من البيانات، وتعيين العلاقات بين الجداول، وتنفيذ الاستعلامات المعقدة. إن استخدام Sequelize يسهل تطوير تطبيقات قاعدة البيانات بطريقة نظيفة ومنظمة.

زر الذهاب إلى الأعلى