Ik zit al een tijdje mijn hersenen te kraken op het volgende.
Stel: ik maak een online winkel en een van de vereisten is een cookie crumb trail trail op elke pagina binnen de site. Op internet kom ik grofweg twee manieren tegen waarop winkels deze trail samenstellen:
1. je leest een uniek id uit, uit de querystring en haalt recursief uit de database het pad naar dat artikel of die categorie op. Hier heb ik al eerder een vraag over gesteld. Het ging toen met name over het (naar mijn zin te) grote aantal queries wat dit veroorzaakt. Inmiddels heb ik - dankzij de antwoorden die gegeven werden - veel meer kennis over cachen, etc. maar dat is afftopic.
2. zie bijvoorbeeld default.aspx?sf=ec&dept=ec0015&cat=ec0017&subcat=ec0019&prev=hp!sf!dept!cat. (URL). Dat is een wezenlijk andere URL dan bij de eerste manier, waarbij de URL bijvoorbeeld http://www.hsn.com/cnt/browse?id=ec0019 is.
Via de eerste manier zou ik mijn recursieve functie laten beginnen met id = ec0019, hier de parent van opvragen (ec0017), daar de parent weer van opvragen (ec0015), en tenslotte daar weer de parent van opvragen (ec). Vervolgens loop ik deze resultaten om de trail te krijgen:
Maar HSN.com bouwt deze trail als het ware op in de querystring, zoals je kunt zien. Mijn vraag is waarom zij dit doen?! In eerste instantie zou je kunnen denken "dan hoef ik het niet meer uit de database te trekken en dat scheelt queries" maar dat argument gaat volgens mij niet op. Om de id-nummers uit de querystring (ec, ec0015, ec0017 en ec0019) om te zetten naar namen, moet je alsnog gangen naar de database maken:
Kan iemand mij vertellen wat - behalve voorkeur - argumenten zijn om deze methode te gebruiken? Zie ik iets over het hoofd en is het weldegelijk efficienter?
P.S: aan de querystring te zien, gaat de boom op HSN nooit dieper dan 4 lagen: sf (storefront), dept (department), cat (category) en soms nog subcat (subcategory). Zoals ik het begrijp krijgen zij dus een probleem als ze ooit dieper willen gaan, zoals electronics > computers > desktops > apple > G2 series > dual processors bijvoorbeeld, maar dat beschouw ik als off-topic. Het gaat mij om de efficiency van de aanpak.
Ik hoop dat iemand mij een onderscheid kan aangeven.
Stel: ik maak een online winkel en een van de vereisten is een cookie crumb trail trail op elke pagina binnen de site. Op internet kom ik grofweg twee manieren tegen waarop winkels deze trail samenstellen:
1. je leest een uniek id uit, uit de querystring en haalt recursief uit de database het pad naar dat artikel of die categorie op. Hier heb ik al eerder een vraag over gesteld. Het ging toen met name over het (naar mijn zin te) grote aantal queries wat dit veroorzaakt. Inmiddels heb ik - dankzij de antwoorden die gegeven werden - veel meer kennis over cachen, etc. maar dat is afftopic.
2. zie bijvoorbeeld default.aspx?sf=ec&dept=ec0015&cat=ec0017&subcat=ec0019&prev=hp!sf!dept!cat. (URL). Dat is een wezenlijk andere URL dan bij de eerste manier, waarbij de URL bijvoorbeeld http://www.hsn.com/cnt/browse?id=ec0019 is.
Via de eerste manier zou ik mijn recursieve functie laten beginnen met id = ec0019, hier de parent van opvragen (ec0017), daar de parent weer van opvragen (ec0015), en tenslotte daar weer de parent van opvragen (ec). Vervolgens loop ik deze resultaten om de trail te krijgen:
code:
1
2
| Electronics (naam van id=sf) > Cameras (naam van id=ec0015) > Digital Cameras (naam van id=ec0017) > 2 Megapixels (naam van id=ec0019) |
Maar HSN.com bouwt deze trail als het ware op in de querystring, zoals je kunt zien. Mijn vraag is waarom zij dit doen?! In eerste instantie zou je kunnen denken "dan hoef ik het niet meer uit de database te trekken en dat scheelt queries" maar dat argument gaat volgens mij niet op. Om de id-nummers uit de querystring (ec, ec0015, ec0017 en ec0019) om te zetten naar namen, moet je alsnog gangen naar de database maken:
code:
1
2
3
4
| SELECT name FROM categories WHERE id=ec SELECT name FROM categories WHERE id = ec0015 SELECT name FROM categories WHERE id = ec0017 SELECT name FROM categories WHERE id = ec0019 |
Kan iemand mij vertellen wat - behalve voorkeur - argumenten zijn om deze methode te gebruiken? Zie ik iets over het hoofd en is het weldegelijk efficienter?
P.S: aan de querystring te zien, gaat de boom op HSN nooit dieper dan 4 lagen: sf (storefront), dept (department), cat (category) en soms nog subcat (subcategory). Zoals ik het begrijp krijgen zij dus een probleem als ze ooit dieper willen gaan, zoals electronics > computers > desktops > apple > G2 series > dual processors bijvoorbeeld, maar dat beschouw ik als off-topic. Het gaat mij om de efficiency van de aanpak.
Ik hoop dat iemand mij een onderscheid kan aangeven.
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."