koha-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Koha-devel] marc stuff


From: paul POULAIN
Subject: Re: [Koha-devel] marc stuff
Date: Thu May 16 23:57:01 2002
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9) Gecko/20020313

Tonnesen Steve wrote:

On Thu, 16 May 2002, paul POULAIN wrote:

And Canadians?  :)

In french, américains, means people from notrh-America (mexico, US, Canada) AND people from USA. so in my mind yu were included ;-)

I have a Marc schema question for you Paul, if you're still around
today...

How do I store the following tag:

100  a Dolch, Edward W.
    q (Edward William),
    d 1889-1961

in marc_1XX_tag_table I'd put:
bibcode=1234
 tagnumber=100
 tagorder=1
 indicator=##
 tagvalue=Dolch, Edward W.
 valuebloblink=NULL

I seem to be missing the subfield code, and I need a unique id for the
record for editing purposes.  Did you intend to put a separate record in
marc_1XX_tag_table for each subfield?  We'd also need some way to tie all
the subfields of a given tag together.

You did'nt undestand my idea : in the 1XX_tag_table, you store the full line. So, the record looks :

bibcode=1234
 tagnumber=100
 tagorder=1
 indicator=##
 tagvalue=$aDolch, Edward W.$q(Edward William)$d 1889-1961
 valuebloblink=NULL

Don't forget that the tag_tables are used only for presentation purposes only. We search all with tag_word table. We can split thit record with a simple regexp, to get more user-friendly presentation. A regexp is FASTER than reading 10 or 15 records from the database. More than that, with your structure, we have to join 3 tables (biblio, tag_table, subfield_table) before getting any information. With my structure, we need only 2.
So, I think (no, in fact I'm sure ;-)) that we don't need a subfield_table.

About other modifications :
FROM :

CREATE TABLE marc_biblio (
!               bibcode bigint(20) unsigned NOT NULL auto_increment,
                datecreated date NOT NULL default '0000-00-00',
TO :
        CREATE TABLE marc_biblio (
!               bibid bigint(20) unsigned NOT NULL auto_increment,
                datecreated date NOT NULL default '0000-00-00',

I agree.

FROM :

        CREATE TABLE marc_0XX_tag_table (
!               bibcode bigint(20) NOT NULL default '0',
                tagnumber char(3) NOT NULL default '',
                tagorder tinyint(4) NOT NULL default '0',
                indicator char(2) NOT NULL default '',
!               tagvalue varchar(255) default NULL,
!               valuebloblink bigint(20) default NULL,
!               PRIMARY KEY  (bibcode,tagnumber,tagorder)
                ) TYPE=MyISAM;

TO :

        CREATE TABLE marc_0XX_tag_table (
!               tagid bigint(20) unsigned NOT NULL auto_increment,
!               bibid bigint(20) NOT NULL default '0',
                tagnumber char(3) NOT NULL default '',
                tagorder tinyint(4) NOT NULL default '0',
                indicator char(2) NOT NULL default '',
!               PRIMARY KEY (tagid),
!               KEY (bibid,tagnumber,tagorder)
                ) TYPE=MyISAM;

I STRONGLY DISAGREE !
Why ?
because (bibid,tagnumber,tagorder) IS A PRIMARY KEY. You can undoubtfully find a record with those three informations. So we don't need a auto_increment field that is redundant. It's a DB-design mistake. I'm (almost) sure it's a bad idea. Note tagvalue and valuebloblink deseappear and should also re-appear if we drop subfields_table.


I won't be reachable before 4PM-GMT. I'll try to be on irc for a few moment at 4PM-GMT to speak with you about the structure. Hoping we will be able to reach a "definitive" structure.
--
Paul






reply via email to

[Prev in Thread] Current Thread [Next in Thread]