To build on Nate's suggestion... > Sorting a list of call numbers is pretty easy; doing it efficiently > for large datasets is rather more tricky. I'm not totally sure, but > the best course of action may be to transform the call numbers into > something indexable (say, a string) that follows the same ordering > rules as your call numbers. If you're retrieving the data from your ILS and the ILS already has a normalized call number field, you would want to retrieve that in addition to your display call number. That would allow for sorting by call number rather than by a database ID and would allow for easier updates of the data (i.e. you wouldn't have to re-generate the entire database ID index). If your ILS doesn't have normalized call numbers, you might want to normalize them yourself as part of the data load process. -- Michael # Michael Doran, Systems Librarian # University of Texas at Arlington # 817-272-5326 office # 817-688-1926 mobile # [log in to unmask] # http://rocky.uta.edu/doran/ > -----Original Message----- > From: Code for Libraries [mailto:[log in to unmask]] On > Behalf Of Nate Vack > Sent: Wednesday, September 17, 2008 11:36 AM > To: [log in to unmask] > Subject: Re: [CODE4LIB] creating call number browse > > On Wed, Sep 17, 2008 at 11:17 AM, Stephens, Owen > <[log in to unmask]> wrote: > > > To start, get a report from your ILS with this info in it, sorted by > > Call Number. To populate the table, import your data (sorted in Call > > Number order). The Database ID will be created on import, > automatically > > in call number order (there are other, almost certainly > better, ways of > > handling this, but this is simple I think) > > The trick here comes, of course, when you want to add a book to the > middle of your database without re-generating the entire index -- that > operation may be expensive. > > Sorting a list of call numbers is pretty easy; doing it efficiently > for large datasets is rather more tricky. I'm not totally sure, but > the best course of action may be to transform the call numbers into > something indexable (say, a string) that follows the same ordering > rules as your call numbers. > > Then, compute the transformation of all your call numbers and drop an > ordinary index on the field. > > -Nate >