Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

πρόβλημα με την σειρά εμφάνισης προϊόντων & πιθανές λύσεις

Îåêßíçóå áðü ôï ìÝëïò xian_at. Τελευταία δημοσίευση από το μέλος axaros στις 26-10-2005, 14:15. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  26-10-2005, 11:45 6478

    πρόβλημα με την σειρά εμφάνισης προϊόντων & πιθανές λύσεις

    Καλημέρα developers,

    Να ξεκαθαρίσω πρώτα οτι δεν έχω μεγαλη εμπειρία σε βάσεις δεδομενων και για αυτό ζητάω τη βοήθεια σας. Διατηρώ μια βάση ms sql 2000 με προϊόντα. Μέχρι τωρα το μέγεθος της ήταν αρκετά μικρό,  όλα τα προϊόντα φυλάσσονταν σε έναν πίνακα products με κλασσικά πεδία (τιμή , κωδικός , εικόνα κτλ). Το πρόβλημα λοιπόν είναι οτι , κατα την εμφάνιση εμφανίζεται πρώτα το wd1200jd και ύστερα το wd800jd. To select  είναι κάπως έτσι :

    select productid ,product_model,product_manufacturer,product_ price , product_image from Products
    where productid like '%"&searchfor&"%' ORDER BY product_manufacturer,product_model ASC

    είναι κατανοητό οτι η sql κρατάει αυτή τη σειρά  1. wd1*** , 2.wd2*** ................... 8.wd8***
    θα ήθελα όμως να βάλω τα προϊόντα απο το μικρότερο μοντέλο στο μεγαλύτερο. Σκέφτηκα 2 λύσεις, η 1η είναι να αναδιαρθρώσω τη βάση με ξεχωριστούς πίνακες ανά κατηγορία προϊόντος (αρκετή δουλειά) και η 2η να φτιαξω έναν μηχανισμό που να θέτει τη σειρά ανά κατηγορία πιθανότατα με trigger on insert..

    Υπάρχει ποιό εύκολος τρόπος ή  γενικά κάποια καλύτερη υλοποίηση που θα βοηθούσε;
    Ευχαριστώ για τον χρόνο σας! 

     

  •  26-10-2005, 11:55 6479 σε απάντηση της 6478

    Απ: πρόβλημα με την σειρά εμφάνισης προϊόντων & πιθανές λύσεις

    Λογω του οτι η έννοια "μεγαλύτερο" ενδέχεται να μην εξαρτάται από το όνομα του μοντέλου σε όλες τις περιπτώσεις, αυτό που θα πρότεινα θα ήταν ένα custom sorting. Ητοι, ένα πεδίο ακόμα το οποίο να χειρίζεσαι αποκλειστικά ως πεδίο απόδοσης "βαθμολογίας" προς ταξινόμηση και με το οποίο να κάνεις sort. Ειναι λιγουλάκι δύσκολη δουλειά, αλλά μπορεί να σε βοηθήσει να ταξινομήσεις τα πράγματα όπως ακριβώς επιθυμείς.

    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  26-10-2005, 14:00 6486 σε απάντηση της 6479

    Απ: πρόβλημα με την σειρά εμφάνισης προϊόντων & πιθανές λύσεις

    Αν ο κωδικός σου έχει σταθερή μορφή (πχ 2 alphanumerics + 2-4 numeric + 2 alphanumerics)
    γιατί δεν κάνεις extract και convert το numeric part και να το ρίξεις σε ένα νέο column όπως λέει και ο Σωτήρης ;
    Πάνος Αβραμίδης
  •  26-10-2005, 14:15 6488 σε απάντηση της 6486

    Απ: πρόβλημα με την σειρά εμφάνισης προϊόντων & πιθανές λύσεις

    H κάτι τέτοιο :

    SELECT * FROM TblProducts ORDER BY CAST(SUBSTRING(PRODUCTID,3,4) As INTEGER)

    Βέβαια το 'wd800jd' θα πρέπει να γίνει 'wd0800jd' ....

    Η μάλλον :

    SELECT * FROM TBLPRODUCTS ORDER BY CAST(SUBSTRING(PRODUCTID,3,LEN(PRODUCTID)-4) As INTEGER)

    Αρκεί να ισχύει ότι ο κωδικός έχει τα τέσσερα alphanumerics (2 στην αρχή + 2 στο τέλος)
    και δεν αλλάζεις τίποτα ...

    Νομίζω δηλαδή ....


    Πάνος Αβραμίδης
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems