Sobes.tech
Junior

Чаро дар ҷадвал муносибат лозим аст?

sobes.tech AI

Ҷавоб аз AI

Реляция, ёки боғланиш байни ҷадвалҳо дар базаи додаҳо, барои:

  • Бартараф кардани такроршавии маълумот: Ба ҷои такрор кардани маълумот дар чанд ҷадвал, онҳо дар якҷоягӣ нигоҳ дошта мешаванд ва дигарон ба он ишора мекунанд. Ин ҷойро сарфа мекунад ва навсозиро осон мекунад.
  • Таъмини мутобиқатии маълумот: Взаъиятҳо кӯмак мекунанд, ки мутобиқатии маълумот нигоҳ дошта шавад. Масалан, наметавон як сатрро дар як ҷадвал тоза кард, агар дигаре ба он ишора кунад (ба вобаста ба навъи маҳдудият).
  • Осон кардани дархостҳо: Имкон медиҳад, ки ба осонӣ маълумоти марбутаро аз чанд ҷадвал бо истифода аз амалҳои JOIN бароед.
  • Эҷоди сохтори базаи додаҳо: Ин муносибати мантиқиро байни объектҳои воқеии ҷаҳон инъикос мекунад, ки сохтори базаи додаҳоро фаҳмонда ва ташкил медиҳад.

Маслиҳатҳои намудҳои муносибат:

  • Як ба як (One-to-one): Як сатр дар ҷадвали А танҳо бо як сатр дар ҷадвали Б алоқаманд аст, ва баръакс.
  • Як ба бисёр (One-to-many): Як сатр дар ҷадвали А метавонад бо чанд сатр дар ҷадвали Б алоқаманд бошад, аммо сатр дар Б танҳо бо як сатр дар А алоқаманд аст.
  • Бисёр ба бисёр (Many-to-many): Як сатр дар ҷадвали А метавонад бо чанд сатр дар ҷадвали Б алоқаманд бошад, ва баръакс. Ин одатан тавассути ҷадвали миёна амалӣ мешавад.

Маслиҳат барои татбиқ дар SQL:

CREATE TABLE мизоҷон (
    мизоҷ_id INT PRIMARY KEY,
    ном VARCHAR(255)
);

CREATE TABLE фармоишҳо (
    фармоиш_id INT PRIMARY KEY,
    санаи_фармоиш DATE,
    мизоҷ_id INT,
    FOREIGN KEY (мизоҷ_id) REFERENCES мизоҷон(мизоҷ_id) // Взаъият "як ба бисёр": як мизоҷ метавонад бисёр фармоишҳо дошта бошад
);