Dataman:1. Σε μία βάση είναι απαραίτητη η δημιουργία Indexes (έχει δηλαδή τις ιδιότητες των βάσεων που είχαμε με την access, πχ ταχύτητα στο view, καθυστέρηση στο Update);
Απαραιτότατο!
Βασικά με τα indexes έχεις ταχύτητα στο διάβασμα ωστόσο αν υπερφορτώσεις τους πίνακες με indexes, μειώνεται η ταχύτητα των updates/deletes
Dataman:2. Για να ορίσουμε ένα πεδίο να μην επιτρέπονται διπλότυπες εγγραφές είναι με την γνωστή μέθοδο των Indexes ή...
Δύο τρόποι: To ορίζεις ως Primary Key ή του βάζεις ένα unique constraint
Dataman:3. Όταν έχουμε δύο πίνακες:
Table1(ID, Name, ID_Address, ...) το ID είναι bigint (Is Identity)
Table2(ID_Address, NameAddress, ...) το ID_Address είναι bigint (Is Identity)
το ID_Adress είναι κοινό και στους δύο πίνακες
Λογικά θα κάνω καταχώρηση με μία SQL Command του πεδίου NameAddress του Table2, κατόπιν θα πάρω το ID_Address που έχει δημιουργηθεί και θα κάνω καταχώρηση στοιχείων στο Table1 με άλλη SQL Command.
Είναι εφικτό όταν με ένα SQL Command να καταχωρίσω δεδομένα στο Table1 δίνοντας όμως και στοιχεία στο Table2. Δηλαδή να καταχωρήσω Name και NameAddress με μία SQL Command?...
Όχι δεν γίνεται, είτε το κάνεις με T-SQL command, είτε το κάνεις με ADO.NET Command, θα πρέπει να το κάνεις σε δύο βήματα. Ωστόσο αν παίζεις με DataSets τα πράγματα απλοποιούνται. Επίσης, αν χρησιμοποιείς κάποιο ORM, πάλι είναι εύκολο και δεν χρειάζεται να κάνεις κάτι.
Dataman:4. Υπάρχει τρόπος ή άλλο εργαλείο που να μπορώ να βλέπω ΟΛΗ την δομή της Database και τις σχέσεις πινάκων με γραφικό περιβάλλον (κάτι σαν το Database Diagrams). Ο λόγος που δεν με βολεύει το Database Diagrams είναι ότι στη βάση υπάρχουν παρα πολλοί πινακες που έχω δημιουργήσει τις σχέσεις τους ξεχωριστά για κάθε κομάτι με το Database Diagrams (Diagram1, 2, 3, ...).
Δεν σε κατάλαβα... Σε ένα diagram μπορείς να βάλεις όσους πίνακες θες, ακόμη και όλους.
Dataman:5. Ποιες οι διαφορές των τύπων nvarchar, varchar και nchar και τι προτείνετε να χρησιμοποιούμε;
Νομίζω η nvarchar(10) μπορεί να δεχτεί παραπάνω από 10 χαρακτήρες, ή κάνω λάθος;...
- Char(X): Παίρνει μέχρι Χ χαρακτήρες, αν βάλεις λιγότερους, συμπληρώνει με κενά
- VarChar(X): Παίρνει μέχρι Χ χαρακτήρες, αν βάλεις λιγότερους, δεν κρατάς τον χώρο τσάμπα
- ΝChar, ΝVarChar: Όπως παραπάνω αλλά για κάθε χαρακτήρα κρατούνται 2 bytes γιατί αποθηκεύεται με την Unicode μορφή του. Αν χρησιμοποιείς αυτούς του τύπους γλυτώνεις από πολλούς πονοκέφαλους με τα Ελληνικά.
Dataman:Και κάτι τελευταίο που αφορά την επικοινωνία των clients με τον Server
Μετά από ψάξιμο κατάφερα και βρήκα ότι οι πόρτες που πρέπει να ανοίξω στο Windows Firewall προκειμένου να υπάρχει επικοινωνία των Clients είναι η 1433 TCP και 1434 UDP με κάποιες ρυθμίσεις στον SQL Server. Το ερώτημά μου είναι εάν ο SQL Server είναι σε άλλο κτήριο με Static IP και θέλω να συνδεθώ, ενώ έχω ρυθμίσει κανονικα το router και όλα τα σχετικά για πρόσβαση στο pc με τις port που αναφερω πιο πάνω, τελικά δεν συνδέεται.
Υπάρχουν και άλλες πόρτες που πρέπει να ανοίξω;
Κάπου αλλού θα είναι το πρόβλημα... Καλύτερα να ανοίξεις νέο thread με όλα τα απαραίτητα στοιχεία (μηνύματα λάθους, περιγραφή συμπεριφοράς, κλπ) για να το δούμε καλύτερα.
Vir prudens non contra ventum mingit