Πορτρέτο του Ξενοφών Απάκη
Ξενοφών Απάκης
Web designer και developer από το 1997

μοντελο πεδιου

μοντελο πεδιου

· Με δύο λόγια

Τι είναι ένα μοντέλο πεδίου, πώς ορίζονται τύποι, κανόνες και σχέσεις και πώς το δοκιμάζουμε πριν από την υλοποίηση σε φόρμες ή βάσεις δεδομένων..

Μοντέλο πεδίου: από τις πληροφορίες σε αξιόπιστη δομή δεδομένων

Το μοντέλο πεδίου περιγράφει ποιες πληροφορίες συγκεντρώνουμε για μια οντότητα, τι τύπο έχουν, ποιοι κανόνες τις ελέγχουν και πώς σχετίζονται μεταξύ τους. Στον σχεδιασμό περιεχομένου και εφαρμογών είναι η γέφυρα ανάμεσα στις ανάγκες του ανθρώπου και στις φόρμες, τις βάσεις δεδομένων ή τις σελίδες. Αντί να αρχίσουμε από το πώς θα φαίνεται μια φόρμα, αποφασίζουμε πρώτα τι σημαίνει κάθε πληροφορία. Έτσι αποφεύγουμε πεδία που αλληλοεπικαλύπτονται, ελλιπείς εγγραφές και περιεχόμενο που δεν μπορεί να επαναχρησιμοποιηθεί με συνέπεια.

Τι ακριβώς θεωρούμε πεδίο;

Πεδίο είναι ένα ορισμένο χαρακτηριστικό μιας οντότητας, όπως ο τίτλος ενός άρθρου, η ημερομηνία μιας εκδήλωσης ή η επιφάνεια ενός ακινήτου. Δεν αρκεί να του δώσουμε ετικέτα. Χρειαζόμαστε σαφές νόημα, τύπο τιμής, κανόνες συμπλήρωσης και προσδοκώμενη χρήση. Το «περιοχή», για παράδειγμα, μπορεί να σημαίνει ελεύθερο κείμενο, επιλογή από εγκεκριμένο κατάλογο ή σύνδεση με γεωγραφική οντότητα. Αυτές οι εκδοχές δεν είναι ισοδύναμες.

Ένα μοντέλο περιλαμβάνει επίσης τις σχέσεις μεταξύ πεδίων. Η τιμή «τιμή πώλησης» χρειάζεται ενδεχομένως νόμισμα, ενώ μια ημερομηνία δημοσίευσης δεν πρέπει να συγχέεται με την ημερομηνία τελευταίας ενημέρωσης. Η σαφήνεια δημιουργείται από τις σημασιολογικές διακρίσεις, όχι από το πλήθος των στηλών.

Πώς επιλέγουμε τα πεδία που πραγματικά χρειάζονται;

Ξεκινήστε από τις αποφάσεις που πρέπει να υποστηρίζει η εφαρμογή. Τι θα διαβάζει ο επισκέπτης; Με τι θα φιλτράρει; Τι πρέπει να επιβεβαιώσει ο συντάκτης πριν τη δημοσίευση; Ποιες πληροφορίες αλλάζουν συχνά; Για κάθε προτεινόμενο πεδίο γράψτε μία φράση σκοπού. Αν δύο πεδία έχουν τον ίδιο σκοπό, ίσως χρειάζεται συγχώνευση· αν ένα πεδίο καλύπτει δύο διαφορετικές έννοιες, ίσως χρειάζεται διάσπαση.

Δοκιμάστε τη λίστα σε τρία πραγματικά σενάρια χρήσης: μια απλή εγγραφή, μια οριακή περίπτωση και μια εγγραφή με ελλείπουσες πληροφορίες. Για μια εκδήλωση, σκεφτείτε διαδικτυακή συμμετοχή χωρίς φυσική διεύθυνση ή αλλαγή ώρας. Ένα μοντέλο που λειτουργεί μόνο για την «τέλεια» εγγραφή δημιουργεί προβλήματα στη συνέχεια.

Τύποι τιμών: πότε χρησιμοποιούμε κείμενο και πότε δομημένη επιλογή;

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

Μην επιλέγετε τύπο με μοναδικό κριτήριο τη διευκόλυνση της εισαγωγής. Ένας αριθμός με μονάδα μέτρησης απαιτεί σαφή κανόνα αποθήκευσης. Ένα μοναδικό πεδίο «τηλέφωνο και email» μπορεί να φαίνεται γρήγορο, αλλά δυσκολεύει την επικοινωνία και τον έλεγχο εγκυρότητας. Η ποιότητα της δομής κρίνεται όταν τα δεδομένα χρειάζεται να ανακτηθούν, όχι όταν πληκτρολογούνται.

Παράδειγμα: μοντέλο πεδίων για μια υπηρεσία

Ας σχεδιάσουμε ένα υποθετικό σύνολο εγγραφών για υπηρεσίες. Η βασική οντότητα «Υπηρεσία» μπορεί να περιλαμβάνει όνομα, σύντομη περιγραφή, αναλυτική παρουσίαση, κατηγορία, ομάδα κοινού, κατάσταση δημοσίευσης και εσωτερικό υπεύθυνο. Η κατηγορία μπορεί να είναι συσχέτιση με εγκεκριμένη οντότητα, ενώ η περιγραφή είναι συντακτικό κείμενο. Ο υπεύθυνος είναι πληροφορία διαχείρισης και δεν χρειάζεται να εμφανίζεται δημόσια.

Πεδίο Τύπος Κανόνας Χρήση
Όνομα υπηρεσίας Σύντομο κείμενο Υποχρεωτικό, σαφές Τίτλος και αναζήτηση
Κατηγορία Αναφορά Επιλογή υπαρκτής τιμής Φίλτρα και ομαδοποίηση
Περιγραφή Πλούσιο κείμενο Περιγράφει συγκεκριμένο όφελος Σελίδα λεπτομερειών
Κατάσταση Ελεγχόμενη τιμή Πρόχειρο ή δημοσιευμένο Ροή έγκρισης
Υπεύθυνος Εσωτερική αναφορά Ορισμένος ρόλος Συντήρηση

Το παράδειγμα δεν είναι έτοιμο πρότυπο για κάθε επιχείρηση. Δείχνει πώς συνδέουμε τον τύπο με τη λειτουργία, χωρίς να μετατρέπουμε κάθε πληροφορία σε δημόσιο στοιχείο.

Ποια πεδία πρέπει να είναι υποχρεωτικά;

Υποχρεωτικό χαρακτηρίζεται ένα πεδίο όταν χωρίς αυτό η εγγραφή δεν μπορεί να εκπληρώσει τον σκοπό της στη συγκεκριμένη κατάσταση. Κατά την αποθήκευση ενός πρόχειρου μπορεί να αρκεί ένας προσωρινός τίτλος. Για τη δημοσίευση μπορεί να απαιτείται επιπλέον σωστή κατηγορία και ολοκληρωμένη περιγραφή. Επομένως, οι κανόνες εγκυρότητας συνδέονται συχνά με τη ροή εργασίας και όχι μόνο με το πεδίο απομονωμένα.

Διαχωρίστε τα σφάλματα από τις προειδοποιήσεις. Ένα μη έγκυρο αναγνωριστικό σχέσης μπορεί να μπλοκάρει την αποθήκευση· μια περιγραφή που χρειάζεται βελτίωση μπορεί απλώς να εμφανίζει υπόδειξη. Αν όλα παρουσιάζονται ως υποχρεωτικά, η ομάδα θα αρχίσει να συμπληρώνει πρόχειρες τιμές για να προσπεράσει τα εμπόδια.

Πώς ορίζουμε σχέσεις χωρίς να διπλασιάζουμε πληροφορίες;

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

Οι σχέσεις μπορούν να είναι μία προς μία, μία προς πολλές ή πολλές προς πολλές. Πριν επιλέξετε, περιγράψτε τις με φυσική γλώσσα: «μία υπηρεσία ανήκει σε μία κύρια κατηγορία, αλλά μπορεί να εμφανίζεται σε περισσότερες θεματικές συλλογές». Η διατύπωση αυτή αποκαλύπτει αν χρειάζεται ξεχωριστή συσχέτιση αντί για λίστα τιμών σε ένα πεδίο κειμένου.

Ποια είναι η διαφορά από το μοντέλο περιεχομένου;

Το μοντέλο περιεχομένου περιγράφει το σύνολο των τύπων περιεχομένου, τα συστατικά τους και τη δυνατότητα επαναχρησιμοποίησης. Το μοντέλο πεδίου εστιάζει πιο στενά στον ορισμό των επιμέρους πληροφοριών και των κανόνων τους. Μπορούμε να σχεδιάσουμε σωστά ένα πεδίο χωρίς να έχουμε λύσει ολόκληρη την αρχιτεκτονική του ιστοτόπου, αλλά δεν μπορούμε να έχουμε αξιόπιστο δομημένο περιεχόμενο με ασαφή πεδία.

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

Πώς δοκιμάζουμε ένα μοντέλο πριν από την υλοποίηση;

Χρησιμοποιήστε μικρό δείγμα πραγματικών περιπτώσεων και ζητήστε από δύο διαφορετικούς ανθρώπους να καταχωρίσουν την ίδια πληροφορία. Εξετάστε αν επιλέγουν τους ίδιους τύπους και κατηγορίες, αν υπάρχουν πεδία που μένουν μόνιμα κενά και αν ορισμένες έννοιες καταχωρίζονται σε λάθος θέση. Το αποτέλεσμα αυτής της δοκιμής δίνει καλύτερη καθοδήγηση από μια μεγάλη λίστα υποθετικών πεδίων.

Καταγράψτε επίσης τη διαδικασία αλλαγής: ποιος εγκρίνει νέο πεδίο, πώς μεταφέρονται παλιές τιμές, τι συμβαίνει όταν ένα πεδίο καταργείται και πώς προστατεύονται οι υπάρχουσες εγγραφές. Ένα μοντέλο πεδίου πετυχαίνει όταν παραμένει κατανοητό σε συντάκτες και προγραμματιστές, ενώ οι αλλαγές γίνονται με προβλέψιμο τρόπο χωρίς απώλειες.

Τι ελέγχουμε τελικά πριν δημοσιεύσουμε;

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

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