Προς το περιεχόμενο

[Βάσεις Δεδομένων] Σύνθετο πρωτεύον κλειδί από 2 ξένα


dimitris2006

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα, σε μία ΒΔ μπορώ να δημιουργήσω έναν πίνακα ο οποίος αποτελείται από σύνθετο κλειδί το οποίο:

αποτελείται από 2 πεδία. Και τα 2 πεδία είναι πρωτεύοντα σε ξεχωριστούς πίνακες, άρα είναι ξένα κλειδιά για τον νέο μου πίνακα. Στον νέο μου πίνακα, θα αποτελούν ένα σύνθετο πρωτεύον κλειδί. Υπάρχει κανένα πρόβλημα με αυτό;

Δημοσ.

Όχι κανένα, απλά τα πεδία στο νέο πίνακα θα πρέπει να έχουν τον ίδιο τύπο δεδομένων. Από εκεί και πέρα μπορείς να τα ορίσεις και τα 2 ως πρωτεύων κλειδί.

Δημοσ.

Καλησπέρα, σε μία ΒΔ μπορώ να δημιουργήσω έναν πίνακα ο οποίος αποτελείται από σύνθετο κλειδί το οποίο:

αποτελείται από 2 πεδία. Και τα 2 πεδία είναι πρωτεύοντα σε ξεχωριστούς πίνακες, άρα είναι ξένα κλειδιά για τον νέο μου πίνακα. Στον νέο μου πίνακα, θα αποτελούν ένα σύνθετο πρωτεύον κλειδί. Υπάρχει κανένα πρόβλημα με αυτό;

Εννοείς ότι θα χρησιμοποιείς τους συνδυασμούς των δύο κλειδιών για να έχεις το κυρίως κλειδί στον άλλο πίνακα, σωστά δεν κατάλαβα; Αν εννοείς αυτό τότε δεν υπάρχει κανένα πρόβλημα σε αυτό.

 

edit: Με πρόλαβαν!

Δημοσ.

Και φυσικά και το ίδιο μέγεθος(εάν δεν κάνω λάθος).

 

@MitsakosGR

2 απόψεις είναι πάντα καλύτερη από μια

 

Δεδομένου ότι είναι ξένα κλειδιά, νομίζω, είναι υποχρεωτικό να είναι ακριβώς ίδιος τύπος - μέγεθος. Ή τουλάχιστον δεν έχω δει πουθενά δυνατότητα να είναι διαφορετικά (ή αναφορά σε κάτι τέτοιο).

Δημοσ.

Δεδομένου ότι είναι ξένα κλειδιά, νομίζω, είναι υποχρεωτικό να είναι ακριβώς ίδιος τύπος - μέγεθος. Ή τουλάχιστον δεν έχω δει πουθενά δυνατότητα να είναι διαφορετικά (ή αναφορά σε κάτι τέτοιο).

 

Ναι, ναι αυτό πιστεύω και εγώ +1

Δημοσ.

Να κάνω άλλη μια σχετική ερώτηση...

θέλω να ορίσω δύο ξένα κλειδιά από δύο διαφορετικούς πίνακες. Ο παρακάτω κώδικας είναι σωστός ή υπάρχει άλλος τρόπος;

 

CONSTRAINT APOSTOLI_FOREIGN_KEY FOREIGN KEY (IDPARALIPTI) REFERENCES PARALIPTIS (IDPARALIPTI),

CONSTRAINT APOSTOLI_FOREIGN_KEY2 FOREIGN KEY (IDPELATI) REFERENCES PELATIS (IDPELATI)

Δημοσ.

Να κάνω άλλη μια σχετική ερώτηση...

θέλω να ορίσω δύο ξένα κλειδιά από δύο διαφορετικούς πίνακες. Ο παρακάτω κώδικας είναι σωστός ή υπάρχει άλλος τρόπος;

 

CONSTRAINT APOSTOLI_FOREIGN_KEY FOREIGN KEY (IDPARALIPTI) REFERENCES PARALIPTIS (IDPARALIPTI),

CONSTRAINT APOSTOLI_FOREIGN_KEY2 FOREIGN KEY (IDPELATI) REFERENCES PELATIS (IDPELATI)

 

Ναι είναι ο μόνος τρόπος δεν μπορείς να έχεις ένα foreign key σε 2 διαφορετικούς πίνακες χρειάζεσαι ένα ανα πίνακα.

Δημοσ.

Να κάνω άλλη μια σχετική ερώτηση...

θέλω να ορίσω δύο ξένα κλειδιά από δύο διαφορετικούς πίνακες. Ο παρακάτω κώδικας είναι σωστός ή υπάρχει άλλος τρόπος;

 

CONSTRAINT APOSTOLI_FOREIGN_KEY FOREIGN KEY (IDPARALIPTI) REFERENCES PARALIPTIS (IDPARALIPTI),

CONSTRAINT APOSTOLI_FOREIGN_KEY2 FOREIGN KEY (IDPELATI) REFERENCES PELATIS (IDPELATI)

 

Ο ορισμός έχει ως εξής

 

>CONSTRAINT <όνομα-περιορισμού>
FOREIGN KEY (<όνομα πεδίου>, <όνομα πεδίου>, ...)
REFERENCES <όνομα πίνακα> (<όνομα πεδίου>, <όνομα πεδίου>, ...);

 

οπότε είσαι απόλυτα σωστός εάν έχεις ορίσει τα κατάλληλα πεδία που θέλεις.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...