MARC operation into KOHA
MARC structure
The idea is to define the MARC structure in 2 tables, allowing support for any MARC standard.
The MARc structure is defined in 2 differents tables :
marc_tag_structure :
Tag_field
Repeatable or Not Repeatable
If the field is Mandatory / Possible / Ignored. If it's mandatory, the field must be entered. If it's possible, the field can be entered, if it's ignored, the field must be not entered.
marc_Subfield_structure :
It could contain, for each tag_field/tag_subfield pair :
Tag_field
Tag_subfield
If the subfield is Mandatory / Possible / Ignored. If it's mandatory, the subfield must be entered. If it's possible, the field can be entered, if it's ignored, the field must be not entered.
If the tag_subfield is Repeatable or Not Repeatable.
Koha-field : this field can be set to indicate that the field is mapped to a non-MARC field. For example, in UNIMARC, 200$a is the title, and is mapped to biblio.title. It's VERY important to have as many fields mapped as possible between old and new DB.
the TAB : The MARC biblio is shown in 11 differents tab in Koha. The 11th is the “items” tab, the 10 others can be set to whatever you want. if a subfield is set to ignore, it's shown nowhere, and it's NOT STORED in the DB. It's a very versatile solution : ppl that want a detailled MARC support can get one with a readable format, and ppl that want a simple MARC support can get one too, without getting an heavy DB.
Select
Selects are done through old koha-DB, or through MARC koha-DB, depending on the user choice. In opac, the search is done on koha-DB only. In koha-librarian, it can be done on koha or MARC DB.
Input
Import
The import script uses the param tables to decide which fields must be added to the DB.
Manual adds/modifications
Addings are done through 10 pages (called TAB). Any modifications is done on the MARC-DB and at the same time in the koha-DB.