Hi all:
For those not following along at http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=10662, we’ve recently started talking about the possibility of adding a “metadata” table to Koha.
The basic schema I have in mind would be something like: metadata.id, metadata.record_id, metadata.scheme, metadata.qualifier, metadata.value.
The row would look like: 1, 1, marc21, 001, 123456789
It might also be necessary to store “metadata.record_type” so as to know where metadata.record_id points. This obviously has a lot of disadvantages… redundant data between “metadata” rows, no database cascades via foreign keys, etc. However, it might be necessary in the short-term as a temporary measure.
Of course, adding “yet another place” to store metadata might not seem like a great idea. We already store metadata in biblioitems.marcxml (and biblioitems.marc), Zebra, and other biblio/biblioitems/items relational database fields. Do we really need a new place to worry about data?
That said, if we’re ever going to move away from MARC as the internal metadata format, we need to start transitioning to something new. I’ve noticed this “metadata” table model in DSpace and other library systems, and it seems to work reasonable well.
I don’t know if we’d break down the whole record into this structure, or if we’d just break down certain fields as defined by a configuration file. In the short term, I’d like to use something like this to access a record’s 001 without going to Zebra, which can be slow to update. I need to be able to query a record using the 001 as soon as its added to the database, and I can’t necessarily get that from Zebra. I also need to be able to query a record, even if Zebra is down.
Failing the “metadata” table idea, I’m not sure how else we’d expose the 001 and any number of other fields without using Zebra. We store the 020 and 022 in biblioitems.isbn and biblioitems.issn, but we’re putting multiple values in a single field, and that’s not so great for searching. We might also want to add the 035 to the fields we’re searching, so I don’t think just adding to the biblio or biblioitems tables will really do… especially since we’re trying to move away from MARC.
Anyway, please let me know your thoughts.
David Cook
Systems Librarian
Prosentient Systems
72/330 Wattle St, Ultimo, NSW 2007