background image

Κεφάλαιο 3 - Ανάπτυξη και Υλοποίηση της Εφαρμογής 
 

 

 

31 

 

 

Εικόνα 3: Η δομή του πίνακα users 

 

Αρχικά έχουμε το γνώρισμα ταυτοποίησης “id”. Αυτό το γνώρισμα παίρνει μοναδική 

τιμή για κάθε εγγραφή και χρησιμοποιείται ως πρωτεύον κλειδί. Ο τύπος του γνωρίσματος “id” 
είναι  “int(10)”,  δηλαδή  ακέραιος  αριθμός  μέχρι  10  ψηφία.  Ένα  γνώρισμα  “int” 
αντιπροσωπεύεται με 4 Byte, έτσι έχει ως μέγιστη τιμή την 2,147,483,647 και ως ελάχιστη την 
-2,147,483,648.  Το  επόμενο  γνώρισμα  του  πίνακα  είναι  το  “username”.  Το  γνώρισμα  αυτό 
είναι τύπου “varchar(25)”, μεταβλητό πεδίο χαρακτήρων με μέγιστο μέγεθος 25 χαρακτήρων.  
Χρησιμοποιούμε  κωδικοποίηση  utf8_general_ci  σε  όλα  τα  γνωρίσματα  “varchar”  για  την 
σωστή  καταχώριση  ελληνικών  χαρακτήρων.  Έπειτα  έχουμε  το  γνώρισμα  “password”.      Το 
γνώρισμα αυτό χρησιμοποιείται για την αποθήκευση του κωδικού χρήστη αφού τον περάσουμε 
από τον αλγόριθμο κατατεμαχισμού MD5 [26]. Αν και υπάρχουν διάφοροι αλγόριθμοι, το MD5 
είναι υπεραρκετό για την ασφάλεια που θέλουμε. Έτσι χρησιμοποιούμε “varchar(32)” καθώς 
η  έξοδος  του  αλγορίθμου  MD5  αποτελείται  από  32  ψηφία  συνδυασμού  αριθμών  και 
χαρακτήρων. Το επόμενο γνώρισμα “type” είναι τύπου “tinyint(1)”. Ο τύπος αυτός αποθηκεύει 
ακέραιες μεταβλητές με χρήση ενός Byte επιτρέποντας τιμές από 0 ως 255. Το γνώρισμα “type” 
αντιστοιχεί στον τύπο χρήστη που αντιπροσωπεύει δικαιώματα και λειτουργίες χρήστη με την 
τιμή  0  ή  διαχειριστή  με  την  τιμή  1.  Το  γνώρισμα  “email”  είναι  τύπου  “varchar(50)” 
επιτρέποντας την συγκράτηση της διεύθυνσης e-mail του χρήστη. Το μέγεθος 50 χαρακτήρων 
είναι μία χρυσή τομή καθώς οι περισσότερες έγκυρες διευθύνσεις είναι συνήθως κάτω από 50 
χαρακτήρες. Το γνώρισμα “telephone” χρησιμοποιείται προαιρετικά για την συγκράτηση ενός 
τηλεφωνικού  αριθμού. Καθώς  οι  αριθμοί  αυτοί  είναι  10  ψηφίων  αλλά  και  μεγαλύτεροι  του 
2,147,483,647, επιλέξαμε την χρήση τύπου “bigint(10)”. Ο τύπος “bigint” μας επιτρέπει την 
χρήση 8 Bytes για την αποθήκευση τιμών καλύπτοντας εύκολα τις ανάγκες συγκράτησης ενός 
αριθμού 10 ψηφίων. Καθώς το γνώρισμα αυτό είναι προαιρετικό, επιτρέπεται η χρήση κενού 
σε  περίπτωση  που  δεν  χρησιμοποιείται.  Το  γνώρισμα  “activated”  είναι  τύπου  “tinyint(1)” 
καθώς χρησιμοποιείται ως σημαία επισήμανσης. Η επισήμανση που προκύπτει από την τιμή 0 
είναι ότι ο χρήστης δεν έχει επιβεβαιώσει την διεύθυνση e-mail του, ενώ η τιμή 1 επισημάνει 
ότι ο χρήστης έχει επιβεβαιώσει επιτυχώς την διεύθυνση e-mail που έδωσε στο σύστημα. Το 
γνώρισμα  ”theme”  είναι  τύπου  “tinyint(2)”.  Το  συγκεκριμένο  γνώρισμα  συγκρατεί  το 
επιλεγμένο  θέμα  εμφάνισης  για  τον  επεξεργαστή  κειμένου.  Καθώς  υπάρχουν  24  διαθέσιμα