Σχεδιασμός Πληροφοριακών Συστημάτων Σημειώσεις Συμπλήρωμα 1 για τις Εκδόσεις 4 (4.1) και 4.2 των Σημειώσεων Έκδοση 23/10/2010 Μάριος Μάντακας mmantak@gmail.com Σφάλμα 1 Σελ.83, 85, 86, 87 Εσφαλμένο: Τριαδική Αναδρομική Σχέση, Τριαδικές Αναδρομικές Σχέσεις Ορθό: Τριαδική Σχέση, Τριαδικές Σχέσεις Σφάλμα 2 Σελ.160 Εσφαλμένο: Ορθό: Template for username field: Email Label for username field: Email Σφάλμα 3 Σελ.167 Ορθό: Η εφαρμογή μου έχει αριθμό 122... Σφάλμα 4 Σελ.174 και 176 Εσφαλμένο: from product p, category c, image i, Ορθό: from product p, category c Μ.Μάντακας Σχεδιασμός Πληροφοριακών Συστημάτων - Συμπλήρωμα 1, 23/10/2010 1/5
Σφάλμα 5 Σελ.175 Ορθό: Η Σελίδα 1 έχει προς το παρόν την παρακάτω μορφή (χωρίς την πρώτη στήλη): Σφάλμα 6 Σελ. 194 Η σελίδα υπάρχει 2 φορές Σφάλμα 7 Σελ. 194, 197, 202, 204 Ορθό: Πρέπει να προστεθεί entity object products (πίνακας προϊόντων). Το control object display_page_5_sc κάνει προσπέλαση και στο entity object products. Σφάλμα 8 Σελ. 204 Ορθό: Λείπουν 2 γραμμές στο σχήμα: Το control object display_page_5_sc κάνει προσπέλαση στα entity objects SC_temp (μη αυθεντικοποιημένος πελάτης) ή SC_pers (αυθεντικοποιημένος πελάτης). Σφάλμα 9 Σελ. 227 Εσφαλμένα: Ορθά: delete_quantities_sc delete_quantities_sc_temp delete_quantities_sc_pers update_quantities_sc update_quantities_sc_temp update_quantities_sc_pers Σφάλμα 10 Σελ. 228 Ο κώδικας του πλαισίου δεν χρειάζεται (βλ. και παρακάτω Προσθήκη 3) Μ.Μάντακας Σχεδιασμός Πληροφοριακών Συστημάτων - Συμπλήρωμα 1, 23/10/2010 2/5
Παρατήρηση 1 Σελ.214 procedure insert_product_to_sc_pers Ο κώδικας είναι σωστός, αλλά η αύξηση της ποσότητας κατά 1 θα μπορούσε να προγραμματιστεί πιο απλά, ως εξής: If l_prod_count > 0 then update SC_pers set quantity = quantity + 1 where product_id = product_to_insert_id and customer_id = authenticated_customer_id ; Προσθήκη 1 - Άσκηση Λίστα Επιλογής: Στατική και Δυναμική λίστα τιμών Στην Επισκόπηση και Αναζήτηση Προϊόντων, και συγκεκριμένα στην αναζήτηση προϊόντων, υπάρχει ήδη μια λίστα επιλογής με στατική λίστα τιμών. Επιτρέπει την επιλογή του πλήθους προϊόντων ανά σελίδα. 1) Αλλάξτε την στατική λίστα τιμών, προσθέτοντας, αφαιρώντας ή τροποποιώντας τιμές. 2) Δημιουργήστε μια δυναμική λίστα τιμών που περιέχει τις διαθέσιμες κατηγορίες προϊόντων, με πάνω στον πίνακα category. Στην συνέχεια, δημιουργήστε μια λίστα επιλογής που χρησιμοποιεί την δυναμική αυτή λίστα τιμών, και επιτρέπει την αναζήτηση προϊόντων που ανήκουν σε μια συγκεκριμένη κατηγορία (ή στο σύνολο των κατηγοριών). Θα πρέπει να τροποποιήσετε κατάλληλα και τον κώδικα () που δημιουργεί το report του καταλόγου προϊόντων. Μ.Μάντακας Σχεδιασμός Πληροφοριακών Συστημάτων - Συμπλήρωμα 1, 23/10/2010 3/5
Προσθήκη 2 - Άσκηση Χρήση view Ορίστε στην βάση ένα view για τον κατάλογο προϊόντων. create or replace view product_catalog as p.image_id, c.category_name, to_char( p.list_price ) char_list_price, 'add_to_cart_image' add_to_cart_image from product p, category c where p.category_id = c.id ; Στην συνέχεια, δημιουργήστε το report του καταλόγου προϊόντων με πάνω στο view αυτό. * from product_catalog ; Προσθήκη 3 Σελ. 223. Η απάντηση στην Άσκηση είναι η παρακάτω: -- Use cases 1.2.1a, 1.2.2a p.list_price ' euro' price, sc.quantity, sc.product_id delete_product, -- Use case 1.2.5a sc.product_id store_product_id, -- Use case 1.2.6a from product p, SC_pers sc where p.id = sc.product_id and sc.customer_id = :f_authenticated_customer_id Μ.Μάντακας Σχεδιασμός Πληροφοριακών Συστημάτων - Συμπλήρωμα 1, 23/10/2010 4/5
Προσθήκη 4 - Άσκηση Επιλογή πολλαπλών γραμμών report με array από checkboxes. Διαδικασία Save for later Στο καρότσι αγορών, προσθέστε την λειτουργία ταυτόχρονης επιλογής πολλαπλών προϊόντων και αποθήκευσης για μελλοντική χρήση (save for later, βλ. Amazon.com). Η λειτουργία αυτή αφαιρεί τα προϊόντα από το καρότσι και τα τοποθετεί σε ένα άλλο είδος καροτσιού. Αυτό επιτρέπει στον χρήστη να διατηρήσει, για πιθανή μελλοντική αγορά, προϊόντα που δεν επιθυμεί να αγοράσει άμεσα. Στο report του μόνιμου (ή του προσωρινού) καροτσιού ορίζουμε ένα array checkboxes με χρήση της συνάρτησης APEX_ITEM.CHECKBOX: p.list_price ' euro' price, sc.quantity, sc.product_id delete_product, sc.product_id store_product_id, APEX_ITEM.CHECKBOX ( 3, p.id ) save_for_later from product p, SC_pers sc where p.id = sc.product_id and sc.customer_id = :f_authenticated_customer_id Προσθέστε ένα process Save_for_later και ένα κουμπί Save for later και που θα καλεί το process. Χρησιμοποιείστε το array apex_application.g_f03(i) για να βρήτε τα επιλεγμένα checkboxes ( ο αριθμός 03 του array έχει καθοριστεί από το πρώτο argument, 3, της συνάρτησης APEX_ITEM.CHECKBOX ). Υλοποιείστε το ειδικό αυτό καρότσι με κάποιoν τρόπο. Για παράδειγμα, σκεφτείτε την δυνατότητα χρήσης ενός επιπλέον χαρακτηριστικού, status, στα καρότσια (μόνιμο και προσωρινό), βλ. και σελ.206. Το status, ας πούμε 3, δηλώνει το πραγματικό καρότσι. Το status, ας πούμε 4, δηλώνει το ειδικό καρότσι Save for later. Μ.Μάντακας Σχεδιασμός Πληροφοριακών Συστημάτων - Συμπλήρωμα 1, 23/10/2010 5/5