KoYkoY wrote: |
Σε βάση δεδομένων της ms access θα ήθελα να ρωτήσω τί μπορεί να κάνει μία σχέση Αόριστη και τί επίδραση έχει μια τέτοιου είδους σχέση στη βάση;
|
|
Φίλε,
Δεν μπορώ να καταλάβω με τι εννοείς με την σχέση «Αόριστη».
Οι σχέσεις που μπορούν να υπάρχουν μεταξύ των πινάκων είναι
3 :
1.one – to – many
Σε αυτή την σχέση για παράδειγμα
στο έναν πίνακα έχουμε τους πελάτες με μοναδικό κωδικό πελάτη και στον άλλο πίνακα
έχουμε τα τιμολόγια που έχουν εκδοθεί για τους πελάτες μας. Αυτό σημαίνει ότι αφού έχουμε ορίσει την σχέση
one – to – many για να εκδοθεί και να καταχωρηθεί ένα τιμολόγιο θα πρέπει οπωσδήποτε
να υπάρχει ο αντίστοιχος κωδικός πελάτη στον πίνακα των πελατών. Επίσης αν πάμε να διαγράψουμε έναν πελάτη και
αυτός έχει τιμολόγία στον πίνακα των τιμολογίων δεν θα μας αφήσει να τον διαγράψουμε
(εκτός αν έχουμε ορίσει διαφορετικά, αλλά αυτό είναι αρκετά επικίνδυνο γιατί αν
διαγράψουμε τον πελάτη αυτόματα θα διαγράψει και όλα τα τιμολόγια που έχουμε έκδοση
για τον πελάτη). Γενικά αν το θα επιτρέψουμε να γίνονται διαγραφές – αλλαγές
εξαρτάται από το business logic.
- one – to – one
Στην σχέση αυτή για παράδειγμα
στον ένα πίνακα έχουμε τους πελάτες και στον άλλο το όριο της έκπτωσης που έχει
ο συγκεκριμένος πελάτης. Εδώ για κάθε πελάτη μπορεί να υπάρχει μόνο ένα όριο έκπτωσης
και δεν μπορεί να καταχωρηθεί δεύτερο. Βεβαίως ισχύουν τα ίδια για τις διαγραφές
– αλλαγές.
- many - to – many
δεν μπορώ να βρω ένα παράδειγμα για αυτό (θα βρω και θα το βάλω) KoYkoY wrote: |
Τί μπορεί να είναι αυτό που κάνει την access να μην αναγνωρίζει τί είδους σχέση είναι εφόσον τα πεδία που συνδέονται είναι του ίδιου τύπου δεδομένων; |
|
Δεν πρέπει να είναι του ίδιου τύπου μόνο αλλά θα πρέπει για
παράδειγμα στις σχέσεις του τύπου 1 και 2 το πεδίο που χρησιμοποιούμε για την σύνδεση
των 2 πινάκων στο πίνακα με τα μοναδικά στοιχεία να είναι μοναδικό Index key (ο πίνακας με τους
μοναδικούς κωδικούς πελατών).
Ελπίζω να κατάλαβα το ερώτημα σου και να σε βοήθησα
Φιλάρετος Σεβαστιάδης.
Albert Camus: Life is the sum of your choices.