القراء مثلك يساعدون في دعم MUO. عند إجراء عملية شراء باستخدام الروابط الموجودة على موقعنا ، فقد نربح عمولة تابعة.

تصف علاقة قاعدة البيانات الاتصال بين جداول قاعدة البيانات المختلفة. تحدد العلاقات كيفية تخزين البيانات واستردادها. يعمل Django بشكل جيد مع أنظمة قواعد البيانات العلائقية (RDBMS). لذلك ، فهو يدعم علاقات جداول قاعدة البيانات.

تعتمد أنواع العلاقات على متطلبات التطبيق الخاص بك والبيانات التي يمثلها. العلاقات الجيدة بين نماذج Django وقاعدة البيانات تعمل على تحسين صيانة البيانات. يتضمن تحسين أداء الاستعلام وتقليل تكرار البيانات.

يمكنك معرفة كيفية تأثير علاقات قاعدة بيانات Django على أداء التطبيق من خلال استكشاف الأنواع الرئيسية الثلاثة للعلاقات.

علاقات قاعدة البيانات

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

نماذج Django تمثل جداول قاعدة البيانات في التطبيق. يجب إنشاء علاقات جيدة بين الجداول لإنشاء نظام قاعدة بيانات جيد. تحدد علاقات قاعدة البيانات كيفية تخزين البيانات وتقديمها في تطبيقك.

instagram viewer

لفهم علاقات قاعدة البيانات ، ابدأ بـ إنشاء مشروع Django اسم الشيئ اغطية. سيكون التطبيق عبارة عن شبكة اجتماعية في الحي. وسيدير ​​الأنشطة الاجتماعية ، والأمن ، والأعمال التجارية في الأحياء المختلفة.

يمكن للمقيمين التسجيل وتسجيل الدخول وإنشاء ملفات تعريف. يمكنهم أيضًا إنشاء منشورات وإعلانات تجارية ليراها الجميع.

للبدء ، أنشئ قاعدة بيانات تخزن جميع بيانات الحي. بعد ذلك ، ستقوم بإنشاء نماذج Profile و NeighborHood و Business و Post. لإنشاء النماذج ، يجب تحديد العلاقة التي تحتاجها جداول قاعدة البيانات.

علاقة قاعدة بيانات واحد لواحد

تشير علاقة رأس برأس إلى أن السجل في نموذج Django يرتبط بسجل آخر في نموذج آخر. يعتمد السجلين على بعضهما البعض. في هذه الحالة ، فإن ملف نموذج الملف الشخصي يعتمد على نموذج المستخدم لإنشاء ملفات تعريف المقيمين.

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

من django.db يستورد عارضات ازياء
مندجانغو.contrib.auth.عارضات ازياءيستوردمستخدم

فصلحساب تعريفي(عارضات ازياء. نموذج):
المستخدم = النماذج. OneToOneField (مستخدم ، on_delete = نماذج. CASCADE، related_name ='حساب تعريفي')
الاسم = النماذج. CharField (أقصى طول =80، فارغ =حقيقي)
النماذج الحيوية. حقل النص (max_length =254، فارغ =حقيقي)
profile_picture = CloudinaryField ('الصوره الشخصيه'الافتراضي ='default.png')
الموقع = النماذج. CharField (أقصى طول =50، فارغ =حقيقي, باطل=حقيقي)
البريد الإلكتروني = النماذج. حقل البريد الإلكتروني (باطل=حقيقي)

def__str__(الذات):
يعود F'{الذات.user.username} الملف الشخصي "

نموذج مستخدم Django هو نموذج مصادقة مدمج في Django. ليس عليك إنشاء نموذج لها. بدلاً من ذلك ، قم باستيراده من django.contrib.auth. ال OneToOneField () على ال نموذج الملف الشخصي يحدد علاقة رأس برأس.

ال on_delete = نماذج. تتالي حجة تمنع حذف أحد هذه السجلات. يجب عليك حذف السجلات من كلا الجدولين.

يمكنك استخدام واجهة إدارة Django لتصور العلاقة في تطبيقك. لتسجيل الدخول إلى مسؤول Django ، يجب عليك التسجيل كمستخدم إداري يُعرف باسم مستخدم متميز.

أنشئ مستخدمًا متميزًا عن طريق تشغيل الأمر التالي على الجهاز:

الثعبانيدير.السنة التحضيريةالخالق

ستكون هناك مطالبة بإدخال اسم المستخدم والبريد الإلكتروني وكلمة المرور. بمجرد القيام بذلك ، ابدأ تشغيل الخادم.

افتح صفحة المسؤول في متصفح باستخدام عنوان URL http://127.0.0.1:8000/admin.

سترى صفحة المسؤول حيث يمكنك تسجيل الدخول باستخدام بيانات الاعتماد التي قمت بإنشائها مسبقًا. بمجرد تسجيل الدخول ، سترى ملف مجموعات و المستخدمون أشياء. يدير إطار مصادقة Django هذين النموذجين. في الجزء السفلي ، سترى ملف نموذج الملف الشخصي.

افتح ال حساب تعريفي نموذج والمضي قدما في إضافة ملف تعريف. سترى أنه يظهر على النحو التالي:

لاحظ أن لديك خيار إنشاء ملف تعريف للمستخدم. يسمح لك نوع البيانات OneToOneField () بإنشاء ملفات تعريف للمستخدمين المصادق عليهم. هذه هي الطريقة التي يدير بها التطبيق العلاقات الفردية.

علاقات واحد لكثير

تشير علاقة واحد بأطراف إلى أن أحد السجلات في نموذج ما يقترن بالعديد من السجلات في نموذج آخر. يشار إليه أيضًا بعلاقة أطراف برأس.

في حالتك ، يمكن لمسؤول واحد إنشاء عدة أحياء. لكن كل حي يمكن أن ينتمي إلى مسؤول واحد فقط. يمكنك استخدام نوع بيانات ForeignKey لتعريف مثل هذه العلاقة.

يمتلك Django واجهة إدارة مدمجة. ليس عليك إنشاء نموذج لها. يحق للمسؤول إدارة المحتوى وتصور التطبيق من لوحة الإدارة.

النموذج الذي يستوعب العديد من السجلات سيكون له الامتداد مفتاح غريب. يعرّف العلاقة على أنها علاقة واحد بأطراف. يوضح الكود أدناه مكان وضع المفتاح.

فصلحيّ(عارضات ازياء. نموذج):
المشرف = النماذج. مفتاح غريب("حساب تعريفي"، on_delete = نماذج. CASCADE، related_name ='كَبُّوت')
الاسم = النماذج. CharField (max_length = 50)
الموقع = النماذج. CharField (max_length = 60)
hood_logo = CloudinaryField ('غطاء محرك السيارة'الافتراضي ='default.png')
الوصف = النماذج. حقل النص()
health_tell = النماذج. عدد صحيح (باطل=حقيقي، فارغ =حقيقي)
Police_number = النماذج. عدد صحيح (باطل=حقيقي، فارغ =حقيقي)
العد = النماذج. عدد صحيح (باطل=حقيقي، فارغ =حقيقي)

def__str__(الذات):
يعود F'{الذات.name} hood '

يمكنك مشاهدة العلاقة على التطبيق كما هو موضح بالصورة:

ال حيّ النموذج لديه الآن مسؤول. لكي يتمكن أي شخص من إنشاء حي ، يجب أن يتمتع بحقوق المسؤول. ولا يمكن أن يحتوي حي واحد على العديد من المسؤولين.

علاقات قاعدة بيانات متعدد بأطراف

في علاقات كثير إلى كثير ، تقترن العديد من السجلات في نموذج واحد بأخرى في نموذج آخر. على سبيل المثال ، ملف بريد و عمل يمكن أن تحتوي النماذج على عدة سجلات لبعضها البعض. يمكن للمستخدمين عمل عدة إعلانات تجارية في منشوراتهم والعكس صحيح.

ومع ذلك ، يمكن أن يؤدي إنشاء علاقات أطراف بأطراف إلى بيانات غير دقيقة. في أطر أخرى ، يجب عليك إنشاء جدول جديد للانضمام إلى الجدولين.

Django لديه حل لهذا. عند استخدام حقل أطراف بأطراف ، فإنه يُنشئ جدولاً جديدًا يعيّن الجدولين معًا. يمكنك وضع حقل متعدد إلى متعدد في أي من النموذجين ، ولكن لا ينبغي أن يكون في كلا النموذجين.

فصلبريد(عارضات ازياء. نموذج):
العنوان = النماذج. CharField (أقصى طول =120, باطل=حقيقي)
آخر = النماذج. حقل النص()
التاريخ = النماذج. DateTimeField (auto_now_add =حقيقي)
المستخدم = النماذج. ForeignKey (الملف الشخصي ، on_delete = النماذج. CASCADE، related_name ='صاحب البريد')
غطاء المحرك = النماذج. ForeignKey (جوار ، on_delete = نماذج. CASCADE، related_name ='غطاء محرك السيارة')
عمل = نماذج. ManyToManyField (الأعمال)

def__str__(الذات):
يعود F'{الذات.title} post '

الآن ، عندما تشاهد ملف بريد في لوحة الإدارة ، يمكنك إرفاق العديد من الشركات في منشور واحد.

يبسط Django علاقات قاعدة البيانات

يحدد نوع قاعدة البيانات التي تستخدمها للتطبيق الخاص بك كيفية تسخير البيانات. تمتلك Django نظامًا شاملاً يجعل ربط وتشغيل قواعد البيانات العلائقية أمرًا سهلاً.

تجعل ميزات Django من السهل تخزين البيانات واستردادها من الجداول ذات الصلة. يحتوي على واجهات برمجة تطبيقات مدمجة تربط وتنشئ علاقات قاعدة بيانات لتطبيقك.

تحدد علاقات قواعد البيانات سلوك التطبيق الخاص بك. سواء كنت تستخدم علاقات رأس برأس ، أو علاقة شخص بأطراف ، أو علاقة أطراف بأطراف ، فهذا يعتمد عليك.

مع Django ، يمكنك تكوين الميزات واختبارها دون كسر تطبيقك. استخدم Django لتأمين أنظمة قواعد البيانات وتحسين تجربة المطور لديك.