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

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

Δημοσ.

Καλησπέρα,

 

Σε σχεδίαση μιας ΒΔ σε 2 σχέσεις(πίνακες) απο τις πολλές δεν έχω τοποθετήσει PM(Primary Key) απλά έχω περιορισμό unique σε ένα συνολο χαρακτηριστικών της ΒΔ.

 

Αυτό που θέλω να ρωτήσω είναι ενα λάθος αυτό ; SQL server "με αφήνει" δεν υπάρχει πρόβλημα..αλλα ρωτάω επειδή είμαι "νεος" στις ΒΔ και μήπως είναι λάθος.

 

Ευχαριστώ

 

ΥΓ: Γνωρίζω οτι αυτα τα χαρακτηριστικά δεν μπορουν στο σύνολο τους να έχουν ίδιες τιμές δηλαδή σχηματίζουν ενα υποψήφιο κλειδί.

Δημοσ.

Μπορείς σε παρακαλώ να γράψεις λίγο πιο αναλυτικά τι ακριβώς θέλεις να πεις; Ή εσύ τα λες λίγο μπερδεμένα, ή εγώ έχω χάσει την μπάλα :P

Δημοσ.

>
create table AAA
  (td int not null,
  dd date not null ,
  tid time not null,
  amount int not null check (amount >0),
  unique(td,dd,tid),  
  foreign key(td) references resble
  on update cascade
  on delete cascade	);

 

Δημιουργώ αυτόν τον πίνακα

π.χ με όνομα AAA και έχω τα εξής χαρακτηριστικά που φαίνονται είναι υποχρεωτικό να βάλω PK

ή αρκεί αυτό unique(td,dd,tid) ; είναι λάθος; δεν μπορούν να υπάρχουν 2 εγγραφές με τις ίδιες τιμές στα χαρακτηριστικά td,dd,tid

Δημοσ.

Όπως είναι λογικό, δεν μπορείς να έχεις δύο φορές τις ίδιες τιμές σε αυτές τις στήλες. Ακόμα και σε συνδυασμό μεταξύ τους πάλι δεν μπορείς, εφόσον η καθεμία είναι δηλωμένη ως unique.

 

Όσον αφορά το key, δεν είναι απαραίτητο, όχι. Σε μερικές περιπτώσεις βέβαια αναλόγως το dbms (δεν ξέρω αν γίνεται σε όλα) μπαίνει αυτόματα ένα αν δεν έχεις δηλώσει εσύ. Το pk δεν το δηλώνεις μόνο για να είναι ένα πεδίο unique. Δίνει επίσης και το χαρακτηριστικό στου να γίνεται index ο πίνακας βάση αυτού του πεδίου.

Δημοσ.

Όπως είναι λογικό, δεν μπορείς να έχεις δύο φορές τις ίδιες τιμές σε αυτές τις στήλες. Ακόμα και σε συνδυασμό μεταξύ τους πάλι δεν μπορείς, εφόσον η καθεμία είναι δηλωμένη ως unique.

 

Βασικά μονο σε συνδυασμο δεν μπορεις, καθώς δεν τις εχει δηλώσει χωριστά ως unique.

Δημοσ.

Καλησπέρα,

 

Σε σχεδίαση μιας ΒΔ σε 2 σχέσεις(πίνακες) απο τις πολλές δεν έχω τοποθετήσει PM(Primary Key) απλά έχω περιορισμό unique σε ένα συνολο χαρακτηριστικών της ΒΔ.

 

Αυτό που θέλω να ρωτήσω είναι ενα λάθος αυτό ; SQL server "με αφήνει" δεν υπάρχει πρόβλημα..αλλα ρωτάω επειδή είμαι "νεος" στις ΒΔ και μήπως είναι λάθος.

 

Ευχαριστώ

 

ΥΓ: Γνωρίζω οτι αυτα τα χαρακτηριστικά δεν μπορουν στο σύνολο τους να έχουν ίδιες τιμές δηλαδή σχηματίζουν ενα υποψήφιο κλειδί.

 

Ναι ειναι λάθος. Τεχνικά γίνεται. Αλλά ... σκέψου , ψάξε και θα καταλάβεις

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...