Çoxdan-çox əlaqə nədir?
AI-dan cavab
sobes.tech Süni İntellekt
Çoxdan-çox (many-to-many) əlaqə, iki varlıq (relasiya bazasında cədvəllər) arasında olan bir əlaqə növüdür; burada bir varlığın qeydiyyatı digər varlığın çoxsaylı qeydiyyatları ilə əlaqələndirilə bilər və əksinə, digər varlığın qeydiyyatı ilk varlığın çoxsaylı qeydiyyatları ilə əlaqələndirilə bilər.
Çoxdan-çox əlaqəni relasiya bazalarında həyata keçirmək üçün adətən aralıq (əlaqə) cədvəli istifadə olunur. Bu cədvəl hər iki əlaqəli varlıq üçün xarici açarları (Foreign Keys) ehtiva edir və birləşmiş əsas açar (composite primary key) yaradır.
Məsəl üçün, "Tələbələr" və "Kurslar" arasındakı əlaqəni nəzərdən keçirək:
- Bir tələbə bir neçə kursa qoşula bilər.
- Bir kursa çox tələbə qoşula bilər.
Verilənlər bazasında tətbiq:
-
studentscədvəli:id(Əsas açar)name
-
coursescədvəli:id(Əsas açar)title
-
Aralıq cədvəl
student_course(və yaenrollments):student_id(Xarici açarstudents.id-yə)course_id(Xarici açarcourses.id-yə)(student_id, course_id)— bu, birləşmiş əsas açar olub, "tələbə-kurs" cütlüyünün unikal olmasını təmin edir.
ORM (məsələn, SQLAlchemy və ya Django ORM) daxilində, çoxdan-çox əlaqə tez-tez abstraktlaşdırılır və açıq şəkildə aralıq cədvəlinin yaradılması gizli qala bilər.
// Django ORM üçün çoxdan-çox əlaqə modeli nümunəsi
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=100)
courses = models.ManyToManyField('Course') // "Çoxdan-çox" əlaqənin təyini
class Course(models.Model):
title = models.CharField(max_length=100)
// Tələbələr course.student_set vasitəsilə əlçatan olacaq
Bu halda, student_course cədvəli Django ORM tərəfindən avtomatik yaradılacaq.