--- permalink: /artikel/321/index.html ---
Vad föreställer bilden?
Det du...
Titeln på den här artikeln är lång men ändå ärlig. Jag sammanfattar här några funderingar, idéer och frågeställningar gällande sortering och filtrering (sökning) i medelstora mängder information. Och det är webben, eller en del av den, som är spelplanen.
Under ett nu pågående projekt har jag ställts inför problemet med sortering och filtrering i webbgränssnitt. Det hela försvåras av att den information som ska hanteras är ganska omfattande (hundra- eller tusentals rader i databasen, beroende på hur man räknar).
Det jag måste lösa är ett sätt att snabbt hitta information i en datamängd, utan att man förlorar överskådlighet. En ren sökfunktion i stil med Google (där man skriver in kriteria och får en lista med sökträffar) räcker inte riktigt. Jag måste kunna markera intressanta sökträffar, göra sökningen smalare genom att förkasta vissa rader (när jag skriver rad menar jag i princip en sökträff) och göra helt nya sökningar – utan att förlora kontrollen över de rader jag valt ut för vidare behandling.
Dessutom ska jag kunna sortera raderna i stigande respektive fallande ordning baserat på de kolumner som presenteras. Och allt ska gå fort, åtminstone tillräckligt fort för att användaren inte ska tröttna eller bli frustrerad.
Den första patrull jag stöter på är att det finns mycket information att hantera, åtminstone tills man gjort ett första urval. I dagsläget tittar jag på drygt 600 rader med fem eller sex kolumner när jag gör ett en fullständig listning. Förutom detta så ligger det drygt 22.000 rader i databasen med ytterligare info som är kopplad till den som presenteras, och som ska vara sökbar.ä
Klientsidan – webbläsaren alltså – kan sortera och filtrera data på ett sätt som gör att känslan i det grafiska gränssnittet kan göras lik en vanlig skrivbordsapplikation, vilket är bra. Nackdelen är att prestandan starkt knyts till användarens dator. Vidare hindrar den (initialt) stora mängden information mig från att köra med en klientbaserad lösning rakt av, eftersom det helt enkelt inte går tillräckligt fort.
Okej, jag har funderat på detta en del nu och kommit på flera idéer på lösningar av varierande kvalitet. En liten sammanställning av de alternativ jag identifierat hittills:
Det sista lösningsförslaget är det jag kommit på senast (alldeles nyss faktiskt) och verkar för mig vara det vettigaste. Kanske skulle det kombineras med det andra, så att man låter klienten sortera om det inte är för mycket information att hantera. Det som tilltalar mig mest med just detta alternativ är att man låter databasen jobba. Det är inte bara studenter på D-linjen som gillar att sortera data– även mySQL sällar sig till skaran...
Jag sätter punkt här, men kom gärna med synpunkter och kommentarer! Jag är öppen för förslag. Vi hörs!
Anders Fjeldstad
Publicerad 3 november 2005
Copyright © 2005 Anders Fjeldstad et al.