background image

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

 

 

34 

 

 

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

 

Το πρωτεύον κλειδί που χρησιμοποιούμε κατά κανόνα εμφανίζεται  και στον πίνακα 

“project_files”  ως  το  γνώρισμα  “id”.  Το  δεύτερο  γνώρισμα  είναι  το  “name”,  τύπου 
“varchar(50)”. Το γνώρισμα αυτό συγκρατεί το όνομα του αρχείου με την κατάληξή του. Αν 
και είναι σπάνιο να χρειαστούν 50 χαρακτήρες για την ονομασία ενός αρχείου, είναι πιθανό σε 
εξαρτήματα με ονομασία που περιγράφει την λειτουργία τους. Το επόμενο γνώρισμα είναι το 
“project_id”. Το γνώρισμα αυτό είναι τύπου “int(10)” καθώς περιέχει το πρωτεύον κλειδί του 
έργου  στο  οποίο  ανήκει  το  αρχείο.  Είναι  προφανές  ότι  το  συγκεκριμένο  γνώρισμα 
χρησιμοποιείται με την λογική ξένου κλειδιού συνδέοντας 1 έργο από τον πίνακα “projects” με 
n αρχεία από τον πίνακα “project_files”. Το γνώρισμα “compiled” είναι τύπου “tinyint(1)” και 
λειτουργεί ως δείκτης μεταγλώττισης. Με την τιμή 0 φαίνεται ότι δεν έχει γίνει μεταγλώττιση, 
με την τιμή 1 φαίνεται ότι έχει γίνει μεταγλώττιση και με την τιμή 2 φαίνεται ότι έχει γίνει 
αλλαγή  των  περιεχομένων  του  αρχείου  από  την  τελευταία  μεταγλώττιση.  Το  γνώρισμα 
“component” είναι τύπου “int(10)” και λειτουργεί ως ξένο κλειδί στον πίνακα βιβλιοθηκών και 
εξαρτημάτων. Το γνώρισμα αυτό θα έχει την τιμή 0 εάν το αρχείο έχει δημιουργηθεί από τον 
χρήστη ενώ θα φέρει την τιμή του πρωτεύον κλειδιού της αντίστοιχης εγγραφής από τον πίνακα 
“libraries” εάν το αρχείο έχει προστεθεί στο έργο από τα διαθέσιμα εξαρτήματα. Ουσιαστικά 
το  γνώρισμα  αυτό  συνδέει  το  αρχείο  με  το  εξάρτημα  ή  βιβλιοθήκη  από  το  οποίο  προήρθε. 
Τέλος,  το  γνώρισμα  “version”  είναι  τύπου  ”smallint(4)”.  Ο  τύπος  “smallint”  συγκρατεί 
ακαίρους σε 2 Byte επιτρέποντας τιμές από 32,768 ως -32,768. Το γνώρισμα αυτό περιέχει την 
έκδοση του αρχείου εάν είναι αντίγραφο βιβλιοθήκης ή εξαρτήματος, αλλιώς έχει την τιμή 0. 
Η συγκράτηση της έκδοσης στον πίνακα του αρχείου, σε συνδυασμό με τον σύνδεσμο για την 
αντίστοιχη εγγραφή του πίνακα “libraries” μας επιτρέπει την ενημέρωση του χρήστη για την 
ύπαρξη  νέων  εκδόσεων  στο  εξάρτημα  που  χρησιμοποιεί.  Βλέπουμε  λοιπόν  πως  ο  πίνακας 
“project_files”  δεν  περιέχει  μόνο  τις  απαραίτητες  πληροφορίες  των  αρχείων  μας  αλλά  και 
στοιχεία που μας επιτρέπουν την ανάπτυξη προχωρημένων λειτουργιών.  

 

3.1.4 Περιγραφή του Πίνακα sid_files 
 

 

Ο πίνακας “sid_files” αποσκοπεί στην διατήρηση εγγραφών για την διατήρηση αρχείων 

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