"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تحدد قيود المفاتيح الخارجية في GORM للذهاب؟

كيف تحدد قيود المفاتيح الخارجية في GORM للذهاب؟

نشر في 2025-03-23
تصفح:184

How to Define Foreign Key Constraints in Gorm for Go?

كيفية إنشاء قيود مفاتيح خارجية باستخدام gorm

عند إدارة علاقات الكيانات في قاعدة بيانات باستخدام GO ، من الضروري إنشاء قيود مفتاح خارجي واضحة. في هذه المقالة ، سوف نستكشف عملية تحديد مثل هذه القيود باستخدام Gorm ، وهو ORM شائع لـ GO.

تحديد النماذج

id uint سلسلة البريد الإلكتروني سلسلة كلمة المرور } اكتب userinfo struct { uid uint سلسلة FirstName سلسلة الاسم العليا سلسلة الهاتف سلسلة العنوان مستخدم المستخدم // يمثل علاقة المفتاح الخارجي }

في هذا المثال ، المستخدم هو الجدول الأصل ، والمستخدم هو جدول الطفل. يعمل حقل UID في userInfo كمفتاح خارجي ، حيث يشير إلى حقل المعرف في جدول المستخدم.
type User struct {
    ID       uint
    Email    string
    Password string
}

type UserInfo struct {
    UID       uint
    FirstName string
    LastName  string
    Phone     string
    Address   string
    User      User // Represents the foreign key relationship
}
مفتاح أجنبي باستخدام Gorm

في Gorm قبل الإصدار 2.0 ، كان من الضروري إنشاء قيود مفاتيح خارجية بشكل صريح في مخطط قاعدة البيانات. يتم تحقيق ذلك باستخدام طريقة addForeIngkey في رمز الترحيل:

db.model (& models.userinfo {}). addForeIngkey ("u_id" ، "t_user (id)" ، "تقيد" ، " لم يعد مطلوبًا. يقوم Gorm تلقائيًا بتثبيط قيود المفاتيح الخارجية استنادًا إلى العلاقات المحددة بين النماذج. من خلال فهم وتطبيق الأساليب المناسبة في GORM ، يمكنك إدارة علاقات قاعدة البيانات بشكل فعال في تطبيقات GO الخاصة بك.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3