Sobes.tech
Junior — Middle

Ποιοι τύποι σχέσεων μεταξύ πινάκων υποστηρίζονται στο PostgreSQL και πώς λειτουργούν;

sobes.tech AI

Απάντηση από AI

Στο PostgreSQL, υποστηρίζονται οι ακόλουθοι βασικοί τύποι σχέσεων μεταξύ πινάκων:

  1. Ένα προς ένα (One-to-One)

    • Κάθε εγγραφή στον πρώτο πίνακα αντιστοιχεί ακριβώς σε μία εγγραφή στον δεύτερο.
    • Συνήθως υλοποιείται με μια μοναδική ξένη κλείδα.
  2. Ένα προς πολλά (One-to-Many)

    • Μία εγγραφή στον πρώτο πίνακα σχετίζεται με πολλές εγγραφές στον δεύτερο.
    • Ο δεύτερος πίνακας περιέχει μια ξένη κλείδα που δείχνει στον πρώτο.
  3. Πολλά προς πολλά (Many-to-Many)

    • Οι εγγραφές και στους δύο πίνακες μπορούν να σχετίζονται με πολλές εγγραφές του άλλου πίνακα.
    • Υλοποιείται μέσω ενός ενδιάμεσου πίνακα (πίνακα σύνδεσης) που περιέχει ξένες κλείδες και στους δύο πίνακες.

Παράδειγμα σχέσης "ένα προς πολλά":

CREATE TABLE συγγραφείς (
  id SERIAL PRIMARY KEY,
  όνομα TEXT
);

CREATE TABLE βιβλία (
  id SERIAL PRIMARY KEY,
  τίτλος TEXT,
  συγγραφέας_id INTEGER REFERENCES συγγραφείς(id)
);

Εδώ, κάθε συγγραφέας μπορεί να έχει πολλά βιβλία, και κάθε βιβλίο έχει μόνο έναν συγγραφέα.

Το PostgreSQL διασφαλίζει την ακεραιότητα των δεδομένων μέσω περιορισμών ξένων κλειδιών, λειτουργιών σε αλυσίδα και ευρετηρίων για αποδοτικές αναζητήσεις.