اذهب إلى المحتوى
  • 0

ما الفرق بين الحقول OneToOne وManyToMany وForeignKey في جانغو Django؟

Mohssen A Mohssen

السؤال

في الفترة الأخيرة بدأت أقوم بعمل علاقات بين النماذح models في جانغو Django، ولكن أواجه صعوبة في فهم الفرق بين أنواع العلاقات.

ما هو الفرق بين إستخدام الحقل OneToOne وManyToMany وForeignKey؟ 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

OneToManyField أو ما يطلق عليه ForeignKey هو نوع من الحقول في models.py هدفه الربط ما بين شيء واحد فقط و شيء آخر مرتبط به على سبيل المثال  ( المستخدم الواحد يمتلك العديد من المنشورات و لكن لا يمكن أن يكون للمنشور الواحد أن يمتلكه أكثر من مستخدم )

ManyToManyField هو نوع من الحقول يربط بين العديد من الأشياء و بين العديد من الأشياء ( كثير إلى كثير ) على سبيل المثال ( المستخدم الواحد لديه في حسابه العديد من الجروبات / المجموعات و يمكن للمجموعه أن تحتوي على العديد من المستخدمين )

OneToOneField هو نوع المن الحقول يربط شيء واحد بالعديد من الأشياء على سبيل المثال ( المستخدم يمتلك صفحه شخصيه واحده فقط و الصفحه الشخصيه الواحده لا يمكن أن يمتلكها أكثر من مستخدم )

 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

OneToOne هذا يعني مثلا  أن شخصًا واحدًا يمكن أن يحتوي على جواز سفر واحد فقط واحد

وManyToMany هذا يعني أن شخصًا واحدًا يمكن أن يحتوي على العديد من العناوين مثل (العنوان الدائم ، عنوان المكتب ، العنوان الثانوي)

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

تم التعديل في بواسطة Abdollahi Mohammed
اضافة مثال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...