Δημοσιεύτηκε: 20 Φεβ 2010, 12:34
από ant_0611
Εγώ θα σου πρότεινα java για το view κομμάτι, java για το bussiness logic κομμάτι + δύο επιλογές για αποθήκευση. Οι δύο αυτες επιλογές θα πρέπει να είναι για 2 διαφορετικά συστήματα αποθήκευσης (Disk Access Objects = DAO). Προσωπικά για τις 2 αυτές επιλογές θα πρότεινα sqlite και MySQL. Αυτές οι δύο επιλογές, δεν θα πρέπει να λειτουργούν ταυτόχρονα, απλα θα είναι σαν επιπλεόν λειτουργικότητα του προγράμματος σε περίπτωση που θέλεις ή χρειαστέι να χρησιμοποιήσεις database server για την εφαρμογή (περισσότεροι υπάλληλοι). Το τί απο τα 2 θα χρησιμοποιείται ανα πάσα στιγμή, ή θα το προσθέσεις στις επιλογές ρύθμισεων του προγράμματος ( μεσα απο το GUI) ή σε configuration file (για αρχή). Μπορείς να ξεκινήσεις με ότι θεωρείς πιο έυκολο. Θα σου πρότεινα, όμως λόγω και του μικρού μεγέθους να ξεκινήσεις απο sqlite, να προσθέσεις όλη την απαραίτητη λειτουργικότητα που επιθυμεί ο χρήστης, και μετά να προσθέσεις την επιλογή για MySQL database server.

Ο τρόπος που σου προτείνω έχει και το πλεονέκτημα σε περίπτωση που επιβληθεί να χρησιμοποιηθεί και διαφορετικός database server (πχ. PostgresSQL, Oracle, Apache Derby) θα μπορείς απλα υλοποιώντας ενα "module" του προγράμματος σου ( θα πρεπει να συμφωνει με συγκεκριμένα interfaces, που θα ορίσεις εσύ) να υποστηρίξεις την καινούργια λειτουργικότητα.

Δώσε πολλή εμφαση στην σχεδίαση του database schema, ωστε να μην περιέχει κενά( περιορισμοι που πρεπει να υπάρχουν ενώ δεν καλύπτονται έστω και εμμεσα) και να είναι όσο γίνεται πιο συμβατό με 3NF ή BCNF. Έτσι δεν θα χρειαστεί να αλλάξει την βάση δεδομένων του , ίσως και , για χρόνια.

Καλό είναι να φροντίσεις να φτιάξεις εναν μηχανισμό μεταφοράς δεδομένων απο το ένα σύστημα στο άλλο, όποτε αποφασισέις να δώσεις αυτην την δυνατότητα. Καλό επίσης είναι να διαβάσεις τα απαραίτητα για auto-documentation ( javadoc κλπ) για να μην χρειαστεί να διπλογράφεις documentation. Προτείνω να χρησιμοποιήσεις ανεπιφύλλακτα το JUnit για testing, και το Netbeans IDE για περιβάλλον υλοποιήσης. Το Netbeans θα σε βοηθήσει και για JUnit και για Database services.

Αυτά! Καλη αρχή!