Print

Print


> From: Code for Libraries [mailto:[log in to unmask]] On
> Behalf Of Jonathan Gorman
> Sent: 22 May, 2006 10:15
> To: [log in to unmask]
> Subject: Re: [CODE4LIB] Musings on using xISBN in our Horizon catalog
>
> My gut instinct is that while this is nice, I'm wondering if
> for this particular project it couldn't be simpler.  Why not
> just simply have a two column table, both being ISBNs.
> Something like source, related.  Then you simply feed in the
> results for every hit from the xISBN service.
>

I don't think a two column table relating ISBN to ISBN is the
proper data model.  As Ben pointed out in his message: "But if
we cross-reference every ISBN to every other, we'll have a
factorial number of rows, which is probably less than optimal."
It also means that the SQL table isn't fully normalized.

Column 1        Column 2
--------        --------
ISBN-1  ISBN-1
ISBN-1  ISBN-2
ISBN-1  ISBN-3
ISBN-1  ISBN-4
ISBN-2  ISBN-1
ISBN-2  ISBN-2
ISBN-2  ISBN-3
ISBN-2  ISBN-4
ISBN-3  ISBN-1
ISBN-3  ISBN-2
ISBN-3  ISBN-3
ISBN-3  ISBN-4
ISBN-4  ISBN-1
ISBN-4  ISBN-2
ISBN-4  ISBN-3
ISBN-4  ISBN-4

We can see from this table that Column 1 is basically a
grouping mechanism. This is why, I suspect, Ben was asking
about using FRBR work set keys for grouping.  This can be
better modeled in a SQL database as:

Column 1        Column 2
--------        --------
GROUP-1 ISBN-1
GROUP-1 ISBN-2
GROUP-1 ISBN-3
GROUP-1 ISBN-4

We just reduced the first table from 16 rows to 4 in the
second table and that was for just one set of related
ISBN's!  Now multiply those numbers for tens or hundreds
of thousands of records and you can see that the database
design using the first table will be unmanageable.


Andy.