Χριστοφορίδης Ιωάννης Ραφαήλ
Σχεδιασμός πληροφοριακού συστήματος διαχείρισης μητρώου
υλικών
46
Επίσης χρειάζεται να αναλυθεί και η μορφή και χρησιμότητα του πίνακα globals:
Ο πίνακας globals έχει παρόμοια δομή, μόνο που αυτός έχει 2 παραπάνω πεδία, το cat
(category) και το length. Φυσικά, το length κάθε κατηγορίας φαίνεται χάρη στην εντολή
describe. Όπως έχει αναφερθεί παραπάνω, ο πίνακας αυτός είναι χρήσιμος στην εύκολη
δημιουργία πινάκων νέων υποκατηγωριών, αλλά και στην δημιουργία νέων στοιχείων πίνακα
σε πίνακες πολλαπλών υποκατηγωριών. Έτσι οι 2 λειτουργίες της global εκτελούνται με
διαφορετικό τρόπο. Η πρώτη γίνεται αυτόματα με την δημιουργία νέας κατηγορίας και η
δεύτερη γίνεται από τον χρήστη με την επιλογή “εφαρμογή”. Ο κώδικας της εφαρμογής
υπάρχει στην γραμμή 273 και μετά. Γενικά στον κώδικα παρατηρούμε πως συλλέγει το id των
υποκατηγοριών (τα ονομάζει dogs) ανάλογα με την κατηγορία (cat) και όλα τα στοιχεία για την
δημιουργία του τοποθετούνται σε μεταβλητές. Αξίζει να σημειωθεί μέρος του κώδικα:
if($mahflag){$mahproxx="AFTER `".$r['name']."`";}
Υπήρξε ένα πρόβλημα με τα global στοιχεία πίνακα, όταν αυτά έμπαιναν εκπρόθεσμα
στους πίνακες μέσω της εντολής “εφαρμογή”. Αναλυτικότερα, τα νέα στοιχεία πίνακα
εισχωρούνταν στο τέλος κάθε πίνακα, έχοντας ως αποτέλεσμα την μη σωστή ταξινόμηση των
στοιχείων κάθε πίνακα. Στο συγκεκριμένο κομμάτι (μετά τον απαραίτητο έλεγχο) το νέο
στοιχείο πίνακα τοποθετείτε μετά το τελευταίο global, ώστε να υπάρχει μια καλύτερη
κατανομή. Βέβαια ο πίνακας subn είναι μια τελείως διαφορετική ιστορία γιατί ουσιαστικά
γίνεται sort σύμφωνα με το id. Για τον λόγο αυτό παρατηρούμε σε πολλά σημεία εντολών της
MySQL την παράμετρο:
ORDER BY `name` ASC
Η τελική μορφή του πίνακα σχηματίζεται από την παρακάτω εντολή (όχι πάντα):
$sql="ALTER TABLE ".MYSQLPREF."sub".$dogs[$x]." ADD `$globalat` $type( $length )
NULL$default $mahproxx";
Παρατηρείται πως δεν έχει κάποια άλλη ιδιότητα (όπως NOT NULL [mandatory] ή
Unique). Αυτό γίνεται για διάφορους λόγους, κυρίως ο έλεγχος των τιμών γίνεται από το
σύστημα μέσω κώδικα.
Στην συνέχεια αξίζει να σημειωθεί πως εδώ βλέπουμε για πρώτη φορά την ανάγκη
επιβεβαίωσης για κάποια ενέργεια του χρήστη. Προχωράμε στην διαγραφή κατηγορίας που
αρχίζει από την γραμμή 511. Αυτή η διαδικασία αποδείχθηκε αρκετά περίπλοκη λόγω του
μεγάλου πλήθους των λειτουργιών της κατηγορίας που έπρεπε να διαγραφούν. Οι γραμμές