bug 3440: Database structure modification.
[koha.git] / installer / data / Pg / kohastructure.sql
1 -- PostgreSQL kohastructure script
2 -- Initial port 2007/10/22 fbcit
3 -- This is very 'alpha' at this point since much of the source will have to be mod'd to do data manipulations before it can be fully tested.
4 -- Many tables lack a primary key and probably need one as that is generally a good db practice.
5 -- **This script requires plpgsql be loaded into the pg koha db PRIOR to executing.**
6 -- This could be done in this script. However, the user must have superuser priviledge. I'm not sure how the koha installer handles this.
7
8 --begin;
9
10 --
11 -- Function to generate populate timestamp fields on update
12 --
13
14 CREATE FUNCTION time_stamp() RETURNS trigger AS $time_stamp$
15     BEGIN
16         -- Update timestamp field on row insert or update
17         NEW.timestamp := current_timestamp;
18         RETURN NEW;
19     END;
20 $time_stamp$ LANGUAGE plpgsql;
21
22 COMMENT ON FUNCTION time_stamp() IS $$ This function updates the timestamp field on an insert or update. It equates to mysql 'on update CURRENT_TIMESTAMP'. $$;
23
24 -- 
25 -- Table structure for table accountlines
26 -- 
27
28 --DROP TABLE accountlines;      --Left the DROP TABLE statements here if needed for some reason...
29
30 CREATE TABLE accountlines (
31 borrowernumber int NOT NULL default 0,
32 accountno int NOT NULL default 0,
33 itemnumber int default NULL,
34 date date default NULL,
35 amount decimal(28,6) default NULL,
36 description text,
37 dispute text,
38 accounttype varchar(5) default NULL,
39 amountoutstanding decimal(28,6) default NULL,
40 "timestamp" timestamp NOT NULL default (now()),
41 notify_id int NOT NULL default 0,
42 notify_level int NOT NULL default 0
43 );
44 CREATE INDEX accountlines_itemnumber_idx ON accountlines (itemnumber);  -- Indecies replace msyql 'enums' datatype. Pg 8.3 will have 'enums' so this may be changed back later...
45 CREATE INDEX accountlines_acctsborr_idx ON accountlines (borrowernumber);
46 CREATE INDEX accountlines_time_idx ON accountlines (timestamp);
47
48 --
49 -- Create timestamp trigger
50 --
51
52 CREATE TRIGGER time_stamp BEFORE INSERT OR UPDATE ON accountlines
53     FOR EACH ROW EXECUTE PROCEDURE time_stamp();
54
55 -- 
56 -- Table structure for table accountoffsets
57 -- 
58
59 --DROP TABLE accountoffsets;
60
61 CREATE TABLE accountoffsets (
62 borrowernumber int NOT NULL default 0,
63 accountno int NOT NULL default 0,
64 offsetaccount int NOT NULL default 0,
65 offsetamount decimal(28,6) default NULL,
66 "timestamp" timestamp NOT NULL default (now())
67 );
68
69
70 --
71 -- Create timestamp trigger
72 --
73
74 CREATE TRIGGER time_stamp BEFORE INSERT OR UPDATE ON accountoffsets
75     FOR EACH ROW EXECUTE PROCEDURE time_stamp();
76
77 -- 
78 -- Table structure for table action_logs
79 -- 
80
81 --DROP TABLE action_logs;
82
83 CREATE TABLE action_logs (
84 "timestamp" timestamp NOT NULL default (now()),
85 "user" int NOT NULL default 0,
86 module text,
87 "action" text,
88 "object" int default NULL,
89 info text,
90 PRIMARY KEY (timestamp,"user")
91 );
92
93 --
94 -- Create timestamp trigger
95 --
96
97 CREATE TRIGGER time_stamp BEFORE INSERT OR UPDATE ON action_logs
98     FOR EACH ROW EXECUTE PROCEDURE time_stamp();
99
100 -- 
101 -- Table structure for table alert
102 -- 
103
104 --DROP TABLE alert;
105
106 CREATE TABLE alert (
107 alertid BIGSERIAL,
108 borrowernumber int NOT NULL default 0,
109 "type" varchar(10) NOT NULL default '',
110 externalid varchar(20) NOT NULL default '',
111 PRIMARY KEY (alertid)
112 );
113 CREATE INDEX alert_borrowernumber_idx ON alert (borrowernumber);
114 CREATE INDEX alert_type_idx ON alert (type,externalid);
115
116 -- 
117 -- Table structure for table aqbasket
118 -- 
119
120 --DROP TABLE aqbasket;
121
122 CREATE TABLE aqbasket (
123 basketno BIGSERIAL,
124 creationdate date default NULL,
125 closedate date default NULL,
126 booksellerid int NOT NULL default '1',
127 authorisedby varchar(10) default NULL,
128 booksellerinvoicenumber text,
129 PRIMARY KEY (basketno)
130 );
131 CREATE INDEX aqbasket_booksellerid_idx ON aqbasket (booksellerid);
132
133 -- 
134 -- Table structure for table aqbookfund
135 -- 
136
137 --DROP TABLE aqbookfund;
138
139 CREATE TABLE aqbookfund (
140 bookfundid varchar(10) UNIQUE NOT NULL default '',
141 bookfundname text,
142 bookfundgroup varchar(5) default NULL,
143 branchcode varchar(10) NOT NULL default '',
144 PRIMARY KEY (bookfundid,branchcode)
145 );
146
147 -- 
148 -- Table structure for table aqbooksellers
149 -- 
150
151 --DROP TABLE aqbooksellers;
152
153 CREATE TABLE aqbooksellers (
154 id BIGSERIAL,
155 name text,
156 address1 text,
157 address2 text,
158 address3 text,
159 address4 text,
160 phone varchar(30) default NULL,
161 accountnumber text,
162 othersupplier text,
163 currency varchar(3) NOT NULL default '',
164 deliverydays int default NULL,
165 followupdays int default NULL,
166 followupscancel int default NULL,
167 specialty text,
168 booksellerfax text,
169 notes text,
170 bookselleremail text,
171 booksellerurl text,
172 contact varchar(100) default NULL,
173 postal text,
174 url varchar(255) default NULL,
175 contpos varchar(100) default NULL,
176 contphone varchar(100) default NULL,
177 contfax varchar(100) default NULL,
178 contaltphone varchar(100) default NULL,
179 contemail varchar(100) default NULL,
180 contnotes text,
181 active int default NULL,
182 listprice varchar(10) default NULL,
183 invoiceprice varchar(10) default NULL,
184 gstreg int default NULL,
185 listincgst int default NULL,
186 invoiceincgst int default NULL,
187 discount numeric(6,4) default NULL,
188 fax varchar(50) default NULL,
189 nocalc int default NULL,
190 invoicedisc numeric(6,4) default NULL,
191 PRIMARY KEY (id)
192 );
193 CREATE INDEX aqbooksellers_invoiceprice_idx ON aqbooksellers (invoiceprice);
194 CREATE INDEX aqbooksellers_listprice_idx ON aqbooksellers (listprice);
195
196 -- 
197 -- Table structure for table aqbudget
198 -- 
199
200 --DROP TABLE aqbudget;
201
202 CREATE TABLE aqbudget (
203 bookfundid varchar(10) NOT NULL default '',
204 startdate date default NULL,
205 enddate date default NULL,
206 budgetamount decimal(13,2) default NULL,
207 aqbudgetid BIGSERIAL,
208 branchcode varchar(10) default NULL,
209 PRIMARY KEY (aqbudgetid)
210 );
211
212 -- 
213 -- Table structure for table aqorderbreakdown
214 -- 
215
216 --DROP TABLE aqorderbreakdown;
217
218 CREATE TABLE aqorderbreakdown (
219 ordernumber int default NULL,
220 "linenumber" int default NULL,
221 branchcode varchar(10) default NULL,
222 bookfundid varchar(10) NOT NULL default '',
223 allocation int default NULL
224 );
225 CREATE INDEX aqorderbreakdown_bookfundid_idx ON aqorderbreakdown (bookfundid);
226 CREATE INDEX aqorderbreakdown_ordernumber_idx ON aqorderbreakdown (ordernumber);
227
228 -- 
229 -- Table structure for table aqorderdelivery
230 -- 
231
232 --DROP TABLE aqorderdelivery;
233
234 CREATE TABLE aqorderdelivery (
235 ordernumber date default NULL,
236 deliverynumber int NOT NULL default 0,
237 deliverydate varchar(18) default NULL,
238 qtydelivered int default NULL,
239 deliverycomments text
240 );
241
242 -- 
243 -- Table structure for table aqorders
244 -- 
245
246 --DROP TABLE aqorders;
247
248 CREATE TABLE aqorders (
249 ordernumber BIGSERIAL,
250 biblionumber int default NULL,
251 title text,
252 entrydate date default NULL,
253 quantity int default NULL,
254 currency varchar(3) default NULL,
255 listprice decimal(28,6) default NULL,
256 totalamount decimal(28,6) default NULL,
257 datereceived date default NULL,
258 booksellerinvoicenumber text,
259 freight decimal(28,6) default NULL,
260 unitprice decimal(28,6) default NULL,
261 quantityreceived int default NULL,
262 cancelledby varchar(10) default NULL,
263 datecancellationprinted date default NULL,
264 notes text,
265 supplierreference text,
266 purchaseordernumber text,
267 subscription int default NULL,
268 serialid varchar(30) default NULL,
269 basketno int default NULL,
270 biblioitemnumber int default NULL,
271 "timestamp" timestamp NOT NULL default (now()),
272 rrp decimal(13,2) default NULL,
273 ecost decimal(13,2) default NULL,
274 gst decimal(13,2) default NULL,
275 budgetdate date default NULL,
276 sort1 varchar(80) default NULL,
277 sort2 varchar(80) default NULL,
278 PRIMARY KEY (ordernumber)
279 );
280 CREATE INDEX aqorders_biblionumber_idx ON aqorders (biblionumber);
281 CREATE INDEX aqorders_basketno_idx ON aqorders (basketno);
282
283 -- 
284 -- Table structure for table auth_header
285 -- 
286
287 --DROP TABLE auth_header;
288
289 CREATE TABLE auth_header (
290 authid BIGSERIAL NOT NULL,
291 authtypecode varchar(10) NOT NULL default '',
292 datecreated date default NULL,
293 datemodified date default NULL,
294 origincode varchar(20) default NULL,
295 authtrees text,
296 marc bytea,
297 linkid int default NULL,
298 marcxml text NOT NULL,
299 PRIMARY KEY (authid)
300 );
301 CREATE INDEX auth_header_origincode_idx ON auth_header (origincode);
302
303 -- 
304 -- Table structure for table auth_subfield_structure
305 -- 
306
307 --DROP TABLE auth_subfield_structure;
308
309 CREATE TABLE auth_subfield_structure (
310 authtypecode varchar(10) NOT NULL default '',
311 tagfield varchar(3) NOT NULL default '',
312 tagsubfield varchar(1) NOT NULL default '',
313 liblibrarian varchar(255) NOT NULL default '',
314 libopac varchar(255) NOT NULL default '',
315 "repeatable" int NOT NULL default 0,
316 mandatory int NOT NULL default 0,
317 tab int default NULL,
318 authorised_value varchar(10) default NULL,
319 value_builder varchar(80) default NULL,
320 seealso varchar(255) default NULL,
321 isurl int default NULL,
322 hidden int NOT NULL default 0,
323 linkid int NOT NULL default 0,
324 kohafield varchar(45) NULL default '',
325 frameworkcode varchar(8) NOT NULL default '',
326 PRIMARY KEY (authtypecode,tagfield,tagsubfield)
327 );
328 CREATE INDEX auth_subfield_structure_tab_idx ON auth_subfield_structure (authtypecode,tab);
329
330 -- 
331 -- Table structure for table auth_tag_structure
332 -- 
333
334 --DROP TABLE auth_tag_structure;
335
336 CREATE TABLE auth_tag_structure (
337 authtypecode varchar(10) NOT NULL default '',
338 tagfield varchar(3) NOT NULL default '',
339 liblibrarian varchar(255) NOT NULL default '',
340 libopac varchar(255) NOT NULL default '',
341 "repeatable" int NOT NULL default 0,
342 mandatory int NOT NULL default 0,
343 authorised_value varchar(10) default NULL,
344 PRIMARY KEY (authtypecode,tagfield)
345 );
346
347 -- 
348 -- Table structure for table auth_types
349 -- 
350
351 --DROP TABLE auth_types;
352
353 CREATE TABLE auth_types (
354 authtypecode varchar(10) NOT NULL default '',
355 authtypetext varchar(255) NOT NULL default '',
356 auth_tag_to_report varchar(3) NOT NULL default '',
357 summary text NOT NULL,
358 PRIMARY KEY (authtypecode)
359 );
360
361 -- 
362 -- Table structure for table authorised_values
363 -- 
364
365 --DROP TABLE authorised_values;
366
367 CREATE TABLE authorised_values (
368 id BIGSERIAL,
369 category varchar(10) NOT NULL default '',
370 authorised_value varchar(80) NOT NULL default '',
371 lib varchar(80) default NULL,
372 PRIMARY KEY (id)
373 );
374 CREATE INDEX authorised_values_name_idx ON authorised_values (category);
375
376 -- 
377 -- Table structure for table biblio
378 -- 
379
380 --DROP TABLE biblio;
381
382 CREATE TABLE biblio (
383 biblionumber int NOT NULL default 0,
384 frameworkcode varchar(4) NOT NULL default '',
385 author text,
386 title text,
387 unititle text,
388 notes text,
389 serial int default NULL,
390 seriestitle text,
391 copyrightdate int default NULL,
392 "timestamp" timestamp NOT NULL default (now()),
393 datecreated DATE NOT NULL,
394 abstract text,
395 PRIMARY KEY (biblionumber)
396 );
397 CREATE INDEX biblio_blbnoidx_idx ON biblio (biblionumber);
398
399 -- 
400 -- Table structure for table biblio_framework
401 -- 
402
403 --DROP TABLE biblio_framework;
404
405 CREATE TABLE biblio_framework (
406 frameworkcode varchar(4) NOT NULL default '',
407 frameworktext varchar(255) NOT NULL default '',
408 PRIMARY KEY (frameworkcode)
409 );
410
411 -- 
412 -- Table structure for table biblioitems
413 -- 
414
415 --DROP TABLE biblioitems;
416
417 CREATE TABLE biblioitems (
418 biblioitemnumber int NOT NULL default 0,
419 biblionumber int NOT NULL default 0,
420 volume text,
421 number text,
422 classification varchar(25) default NULL,
423 itemtype varchar(10) default NULL,
424 isbn varchar(14) default NULL,
425 issn varchar(9) default NULL,
426 dewey varchar(30) default '',
427 subclass varchar(3) default NULL,
428 publicationyear text,
429 publishercode varchar(255) default NULL,
430 volumedate date default NULL,
431 volumeddesc text,
432 collectiontitle text default NULL,
433 collectionissn text default NULL,
434 collectionvolume text default NULL,
435 editionstatement text default NULL,
436 editionresponsibility text default NULL,
437 "timestamp" timestamp NOT NULL default (now()),
438 illus varchar(255) default NULL,
439 pages varchar(255) default NULL,
440 notes text,
441 size varchar(255) default NULL,
442 place varchar(255) default NULL,
443 lccn varchar(25) default NULL,
444 marc bytea,
445 url varchar(255) default NULL,
446 lcsort varchar(25) default NULL,
447 ccode varchar(4) default NULL,
448 marcxml text NOT NULL,
449 PRIMARY KEY (biblioitemnumber)
450 );
451 CREATE INDEX biblioitems_publishercode_idx ON biblioitems (publishercode);
452 CREATE INDEX biblioitems_biblioitemnumber_idx ON biblioitems (biblioitemnumber);
453 CREATE INDEX biblioitems_biblionumber_idx ON biblioitems (biblionumber);
454 CREATE INDEX biblioitems_isbn_idx ON biblioitems (isbn);
455
456 -- 
457 -- Table structure for table borrowers
458 -- 
459
460 --DROP TABLE borrowers;
461
462 CREATE TABLE borrowers (
463 borrowernumber BIGSERIAL UNIQUE,
464 cardnumber varchar(16) UNIQUE default NULL,
465 surname text NOT NULL,
466 firstname text,
467 title text,
468 othernames text,
469 initials text,
470 streetnumber varchar(10) default NULL,
471 streettype varchar(50) default NULL,
472 address text NOT NULL,
473 address2 text,
474 city text NOT NULL,
475 zipcode varchar(25) default NULL,
476 email text,
477 phone text,
478 mobile varchar(50) default NULL,
479 fax text,
480 emailpro text,
481 phonepro text,
482 B_streetnumber varchar(10) default NULL,
483 B_streettype varchar(50) default NULL,
484 B_address varchar(100) default NULL,
485 B_city text,
486 B_zipcode varchar(25) default NULL,
487 B_email text,
488 B_phone text,
489 dateofbirth date default NULL,
490 branchcode varchar(10) NOT NULL default '',
491 categorycode varchar(10) NOT NULL default '',
492 dateenrolled date default NULL,
493 dateexpiry date default NULL,
494 gonenoaddress int default NULL,
495 lost int default NULL,
496 debarred int default NULL,
497 contactname text,
498 contactfirstname text,
499 contacttitle text,
500 guarantorid int default NULL,
501 borrowernotes text,
502 relationship varchar(100) default NULL,
503 ethnicity varchar(50) default NULL,
504 ethnotes varchar(255) default NULL,
505 sex varchar(1) default NULL,
506 "password" varchar(30) default NULL,
507 flags int default NULL,
508 userid varchar(30) default NULL,
509 opacnote text,
510 contactnote varchar(255) default NULL,
511 sort1 varchar(80) default NULL,
512 sort2 varchar(80) default NULL
513 );
514 CREATE INDEX borrowers_branchcode_idx ON borrowers (branchcode);
515 CREATE INDEX borrowers_borrowernumber_idx ON borrowers (borrowernumber);
516 CREATE INDEX borrowers_categorycode_idx ON borrowers (categorycode);
517
518 -- 
519 -- Table structure for table branchcategories
520 -- 
521
522 --DROP TABLE branchcategories;
523
524 CREATE TABLE branchcategories (
525 categorycode varchar(4) NOT NULL default '',
526 categoryname text,
527 codedescription text,
528 PRIMARY KEY (categorycode)
529 );
530
531 -- 
532 -- Table structure for table branches
533 -- 
534
535 --DROP TABLE branches;
536
537 CREATE TABLE branches (
538 branchcode varchar(10) UNIQUE NOT NULL default '',
539 branchname text NOT NULL,
540 branchaddress1 text,
541 branchaddress2 text,
542 branchaddress3 text,
543 branchzip varchar(25) default NULL,  
544 branchcity mediumtext,
545 branchcountry text,
546 branchphone text,
547 branchfax text,
548 branchemail text,
549 branchurl mediumtext,
550 issuing int default NULL,
551 branchip varchar(15) default NULL,
552 branchprinter varchar(100) default NULL,
553 branchnotes mediumtext
554 );
555
556 -- 
557 -- Table structure for table branchrelations
558 -- 
559
560 --DROP TABLE branchrelations;
561
562 CREATE TABLE branchrelations (
563 branchcode varchar(10) NOT NULL default '',
564 categorycode varchar(4) NOT NULL default '',
565 PRIMARY KEY (branchcode,categorycode)
566 );
567 CREATE INDEX branchrelations_categorycode_idx ON branchrelations (categorycode);
568 CREATE INDEX branchrelations_branchcode_idx ON branchrelations (branchcode);
569
570 -- 
571 -- Table structure for table branchtransfers
572 -- 
573
574 --DROP TABLE branchtransfers;
575
576 CREATE TABLE branchtransfers (
577 itemnumber int NOT NULL default 0,
578 datesent timestamp default NULL,
579 frombranch varchar(10) NOT NULL default '',
580 datearrived timestamp default NULL,
581 tobranch varchar(10) NOT NULL default '',
582 comments text
583 );
584 CREATE INDEX branchtransfers_frombranch_idx ON branchtransfers (frombranch);
585 CREATE INDEX branchtransfers_tobranch_idx ON branchtransfers (tobranch);
586 CREATE INDEX branchtransfers_itemnumber_idx ON branchtransfers (itemnumber);
587
588 -- 
589 -- Table structure for table browser
590 -- 
591 --DROP TABLE browser;
592
593 CREATE TABLE browser (
594 level int NOT NULL,
595 classification varchar(20) NOT NULL,
596 description varchar(255) NOT NULL,
597 number int NOT NULL,
598 endnode int NOT NULL
599 );
600
601 -- 
602 -- Table structure for table categories
603 -- 
604
605 --DROP TABLE categories;
606
607 CREATE TABLE categories (
608 categorycode varchar(10) UNIQUE NOT NULL default '',
609 description text,
610 enrolmentperiod int default NULL,
611 upperagelimit int default NULL,
612 dateofbirthrequired int default NULL,
613 finetype varchar(30) default NULL,
614 bulk int default NULL,
615 enrolmentfee decimal(28,6) default NULL,
616 overduenoticerequired int default NULL,
617 issuelimit int default NULL,
618 reservefee decimal(28,6) default NULL,
619 category_type varchar(1) NOT NULL default 'A',
620 PRIMARY KEY (categorycode)
621 );
622
623 -- 
624 -- Table structure for table cities
625 -- 
626
627 --DROP TABLE cities;
628
629 CREATE TABLE cities (
630 cityid BIGSERIAL,
631 city_name varchar(100) NOT NULL default '',
632 city_zipcode varchar(20) default NULL,
633 PRIMARY KEY (cityid)
634 );
635
636 --
637 -- Table structure for table class_sort_rules
638 --
639
640 CREATE TABLE class_sort_rules (
641   class_sort_rule varchar(10) UNIQUE NOT NULL default '',
642   description text,
643   sort_routine varchar(30) NOT NULL default '',
644   PRIMARY KEY (class_sort_rule)
645 );
646 CREATE INDEX class_sort_rule_idx ON class_sort_rules (class_sort_rule); 
647
648 --
649 -- Table structure for table class_sources
650 --
651
652 CREATE TABLE class_sources (
653   cn_source varchar(10) NOT NULL default '',
654   description text,
655   used int NOT NULL default 0,
656   class_sort_rule varchar(10) NOT NULL default '',
657   PRIMARY KEY (cn_source)
658 --  This seems redundant -fbcit
659 --  UNIQUE KEY cn_source_idx (cn_source),
660 );
661 CREATE INDEX used_idx ON class_sources (used);
662
663 -- 
664 -- Table structure for table currency
665 -- 
666
667 --DROP TABLE currency;
668
669 CREATE TABLE currency (
670 currency varchar(10) NOT NULL default '',
671 rate numeric(7,5) default NULL,
672 PRIMARY KEY (currency)
673 );
674
675 -- 
676 -- Table structure for table deletedbiblio
677 -- 
678
679 --DROP TABLE deletedbiblio;
680
681 CREATE TABLE deletedbiblio (
682 biblionumber int NOT NULL default 0,
683 frameworkcode varchar(4) NOT NULL,
684 author text,
685 title text,
686 unititle text,
687 notes text,
688 serial int default NULL,
689 seriestitle text,
690 copyrightdate int default NULL,
691 "timestamp" timestamp NOT NULL default (now()),
692 marc bytea,
693 abstract text,
694 PRIMARY KEY (biblionumber)
695 );
696 CREATE INDEX deletedbiblio_blbnoidx_idx ON deletedbiblio (biblionumber);
697
698 -- 
699 -- Table structure for table deletedbiblioitems
700 -- 
701
702 --DROP TABLE deletedbiblioitems;
703
704 CREATE TABLE deletedbiblioitems (
705 biblioitemnumber int NOT NULL default 0,
706 biblionumber int NOT NULL default 0,
707 volume text,
708 number text,
709 classification varchar(25) default NULL,
710 itemtype varchar(10) default NULL,
711 isbn varchar(14) default NULL,
712 issn varchar(9) default NULL,
713 dewey numeric(8,6) default NULL,
714 subclass varchar(3) default NULL,
715 publicationyear int default NULL,
716 publishercode varchar(255) default NULL,
717 volumedate date default NULL,
718 volumeddesc varchar(255) default NULL,
719 "timestamp" timestamp NOT NULL default (now()),
720 illus varchar(255) default NULL,
721 pages varchar(255) default NULL,
722 notes text,
723 size varchar(255) default NULL,
724 lccn varchar(25) default NULL,
725 marc text,
726 url varchar(255) default NULL,
727 place varchar(255) default NULL,
728 lcsort varchar(25) default NULL,
729 ccode varchar(4) default NULL,
730 marcxml text NOT NULL,
731 collectiontitle text,
732 collectionissn text,
733 collectionvolume text,
734 editionstatement text,
735 editionresponsibility text,
736 PRIMARY KEY (biblioitemnumber)
737 );
738 CREATE INDEX deletedbiblioitems_biblioitemnumber_idx ON deletedbiblioitems (biblioitemnumber);
739 CREATE INDEX deletedbiblioitems_biblionumber_idx ON deletedbiblioitems (biblionumber);
740
741 -- 
742 -- Table structure for table deletedborrowers
743 -- 
744
745 --DROP TABLE deletedborrowers;
746
747 CREATE TABLE deletedborrowers (
748 borrowernumber int NOT NULL default 0,
749 cardnumber varchar(9) NOT NULL default '',
750 surname text NOT NULL,
751 firstname text,
752 title text,
753 othernames text,
754 initials text,
755 streetnumber varchar(10) default NULL,
756 streettype varchar(50) default NULL,
757 address text NOT NULL,
758 address2 text,
759 city text NOT NULL,
760 zipcode varchar(25) default NULL,
761 email text,
762 phone text,
763 mobile varchar(50) default NULL,
764 fax text,
765 emailpro text,
766 phonepro text,
767 B_streetnumber varchar(10) default NULL,
768 B_streettype varchar(50) default NULL,
769 B_address varchar(100) default NULL,
770 B_city text,
771 B_zipcode varchar(25) default NULL,
772 B_email text,
773 B_phone text,
774 dateofbirth date default NULL,
775 branchcode varchar(10) NOT NULL default '',
776 categorycode varchar(2) default NULL,
777 dateenrolled date default NULL,
778 dateexpiry date default NULL,
779 gonenoaddress int default NULL,
780 lost int default NULL,
781 debarred int default NULL,
782 contactname text,
783 contactfirstname text,
784 contacttitle text,
785 guarantorid int default NULL,
786 borrowernotes text,
787 relationship varchar(100) default NULL,
788 ethnicity varchar(50) default NULL,
789 ethnotes varchar(255) default NULL,
790 sex varchar(1) default NULL,
791 "password" varchar(30) default NULL,
792 flags int default NULL,
793 userid varchar(30) default NULL,
794 opacnote text,
795 contactnote varchar(255) default NULL,
796 sort1 varchar(80) default NULL,
797 sort2 varchar(80) default NULL
798 );
799 CREATE INDEX deletedborrowers_borrowernumber_idx ON deletedborrowers (borrowernumber);
800 CREATE INDEX deletedborrowers_cardnumber_idx ON deletedborrowers (cardnumber);
801
802 -- 
803 -- Table structure for table deleteditems
804 -- 
805
806 --DROP TABLE deleteditems;
807
808 CREATE TABLE deleteditems (
809 itemnumber int NOT NULL default 0,
810 biblionumber int NOT NULL default 0,
811 biblioitemnumber int NOT NULL default 0,
812 barcode varchar(9) UNIQUE NOT NULL default '',
813 dateaccessioned date default NULL,
814 booksellerid varchar(10) default NULL,
815 homebranch varchar(4) default NULL,
816 price decimal(28,6) default NULL,
817 replacementprice decimal(28,6) default NULL,
818 replacementpricedate date default NULL,
819 datelastborrowed date default NULL,
820 datelastseen date default NULL,
821 stack int default NULL,
822 notforloan int default NULL,
823 damaged int default NULL,
824 itemlost int default NULL,
825 wthdrawn int default NULL,
826 bulk varchar(30) default NULL,
827 issues int default NULL,
828 renewals int default NULL,
829 reserves int default NULL,
830 restricted int default NULL,
831 itemnotes text,
832 holdingbranch varchar(4) default NULL,
833 interim int default NULL,
834 "timestamp" timestamp NOT NULL default (now()),
835 marc bytea,
836 paidfor text,
837 "location" varchar(80) default NULL,
838 itemcallnumber varchar(30) default NULL,
839 onloan date default NULL,
840 cutterextra varchar(45) default NULL,
841 itype varchar(10) default NULL,
842 PRIMARY KEY (itemnumber)
843 );
844 CREATE INDEX deleteditems_barcode_idx ON deleteditems (barcode);
845 CREATE INDEX deleteditems_biblioitemnumber_idx ON deleteditems (biblioitemnumber);
846 CREATE INDEX deleteditems_itembibnoidx_idx ON deleteditems (biblionumber);
847
848 -- 
849 -- Table structure for table ethnicity
850 -- 
851
852 --DROP TABLE ethnicity;
853
854 CREATE TABLE ethnicity (
855 code varchar(10) NOT NULL default '',
856 name varchar(255) default NULL,
857 PRIMARY KEY (code)
858 );
859
860 -- 
861 -- Table structure for table issues
862 -- 
863
864 --DROP TABLE issues;
865
866 CREATE TABLE issues (
867 borrowernumber int default NULL,
868 itemnumber int default NULL,
869 date_due date default NULL,
870 branchcode varchar(10) default NULL,
871 issuingbranch varchar(18) default NULL,
872 returndate date default NULL,
873 lastreneweddate date default NULL,
874 return varchar(4) default NULL,
875 renewals int default NULL,
876 "timestamp" timestamp NOT NULL default (now()),
877 issuedate date default NULL
878 );
879 CREATE INDEX issues_borrowernumber_idx ON issues (borrowernumber);
880 CREATE INDEX issues_itemnumber_idx ON issues (itemnumber);
881 CREATE INDEX issues_bordate_idx ON issues (borrowernumber,timestamp);
882
883 -- 
884 -- Table structure for table issuingrules
885 -- 
886
887 --DROP TABLE issuingrules;
888
889 CREATE TABLE issuingrules (
890 categorycode varchar(10) NOT NULL default '',
891 itemtype varchar(10) NOT NULL default '',
892 restrictedtype int default NULL,
893 rentaldiscount decimal(28,6) default NULL,
894 reservecharge decimal(28,6) default NULL,
895 fine decimal(28,6) default NULL,
896 firstremind int default NULL,
897 chargeperiod int default NULL,
898 accountsent int default NULL,
899 chargename varchar(100) default NULL,
900 maxissueqty int default NULL,
901 issuelength int default NULL,
902 branchcode varchar(10) NOT NULL default '',
903 PRIMARY KEY (branchcode,categorycode,itemtype)
904 );
905 CREATE INDEX issuingrules_categorycode_idx ON issuingrules (categorycode);
906 CREATE INDEX issuingrules_itemtype_idx ON issuingrules (itemtype);
907
908 -- 
909 -- Table structure for table items
910 -- 
911
912 --DROP TABLE items;
913
914 CREATE TABLE items (
915 itemnumber int NOT NULL default 0,
916 biblionumber int NOT NULL default 0,
917 biblioitemnumber int NOT NULL default 0,
918 barcode varchar(20) default NULL,
919 dateaccessioned date default NULL,
920 booksellerid varchar(10) default NULL,
921 homebranch varchar(4) default NULL,
922 price decimal(8,2) default NULL,
923 replacementprice decimal(8,2) default NULL,
924 replacementpricedate date default NULL,
925 datelastborrowed date default NULL,
926 datelastseen date default NULL,
927 stack int default NULL,
928 notforloan int default NULL,
929 damaged int default NULL,
930 itemlost int default NULL,
931 wthdrawn int default NULL,
932 itemcallnumber varchar(30) default NULL,
933 issues int default NULL,
934 renewals int default NULL,
935 reserves int default NULL,
936 restricted int default NULL,
937 itemnotes text,
938 holdingbranch varchar(10) default NULL,
939 paidfor text,
940 "timestamp" timestamp NOT NULL default (now()),
941 "location" varchar(80) default NULL,
942 onloan date default NULL,
943 cutterextra varchar(45) default NULL,
944 itype varchar(10) default NULL,
945 PRIMARY KEY (itemnumber)
946 );
947 CREATE INDEX items_barcode_idx ON items (barcode);
948 CREATE INDEX items_biblioitemnumber_idx ON items (biblioitemnumber);
949 CREATE INDEX items_biblionumber_idx ON items (biblionumber);
950 CREATE INDEX items_homebranch_idx ON items (homebranch);
951 CREATE INDEX items_holdingbranch_idx ON items (holdingbranch);
952
953 -- 
954 -- Table structure for table itemtypes
955 -- 
956
957 --DROP TABLE itemtypes;
958
959 CREATE TABLE itemtypes (
960 itemtype varchar(10) UNIQUE NOT NULL default '',
961 description text,
962 renewalsallowed int default NULL,
963 rentalcharge numeric(16,4) default NULL,
964 notforloan int default NULL,
965 imageurl varchar(200) default NULL,
966 summary text,
967 PRIMARY KEY (itemtype)
968 );
969
970 -- 
971 -- Table structure for table labels
972 -- 
973
974 --DROP TABLE labels;
975
976 CREATE TABLE labels (
977 labelid BIGSERIAL UNIQUE NOT NULL,
978 batch_id varchar(10) NOT NULL default '1',
979 itemnumber varchar(100) NOT NULL default '',
980 "timestamp" timestamp NOT NULL default (now()),
981 PRIMARY KEY (labelid)
982 );
983
984 -- 
985 -- Table structure for table labels_conf
986 -- 
987
988 --DROP TABLE labels_conf;
989
990 CREATE TABLE labels_conf (
991 id BIGSERIAL UNIQUE NOT NULL,
992 barcodetype varchar(100) default '',
993 title int default '0',
994 itemtype int default '0',
995 barcode int default '0',
996 dewey int default '0',
997 "class" int default '0',
998 subclass int default '0',
999 itemcallnumber int default '0',
1000 author int default '0',
1001 issn int default '0',
1002 isbn int default '0',
1003 startlabel int NOT NULL default '1',
1004 printingtype varchar(32) default 'BAR',
1005 layoutname varchar(20) NOT NULL default 'TEST',
1006 guidebox int default '0',
1007 active int default '1',
1008 fonttype varchar(10) default NULL,
1009 subtitle int default NULL,
1010 PRIMARY KEY (id)
1011 );
1012
1013 -- 
1014 -- Table structure for table labels_templates
1015 -- 
1016
1017 --DROP TABLE labels_templates;
1018
1019 CREATE TABLE labels_templates (
1020 tmpl_id BIGSERIAL UNIQUE NOT NULL,
1021 tmpl_code varchar(100) default '',
1022 tmpl_desc varchar(100) default '',
1023 page_width float default '0',
1024 page_height float default '0',
1025 label_width float default '0',
1026 label_height float default '0',
1027 topmargin float default '0',
1028 leftmargin float default '0',
1029 cols int default '0',
1030 "rows" int default '0',
1031 colgap float default '0',
1032 rowgap float default '0',
1033 active int default NULL,
1034 units varchar(20) default 'PX',
1035 fontsize int NOT NULL default '3',
1036 PRIMARY KEY (tmpl_id)
1037 );
1038
1039 -- 
1040 -- Table structure for table letter
1041 -- 
1042
1043 --DROP TABLE letter;
1044
1045 CREATE TABLE letter (
1046 module varchar(20) NOT NULL default '',
1047 code varchar(20) NOT NULL default '',
1048 name varchar(100) NOT NULL default '',
1049 title varchar(200) NOT NULL default '',
1050 content text,
1051 PRIMARY KEY (module,code)
1052 );
1053
1054 -- 
1055 -- Table structure for table marc_breeding
1056 -- 
1057
1058 --DROP TABLE marc_breeding;
1059
1060 CREATE TABLE marc_breeding (
1061 id BIGSERIAL,
1062 file varchar(80) NOT NULL default '',
1063 isbn varchar(10) NOT NULL default '',
1064 title varchar(128) default NULL,
1065 author varchar(80) default NULL,
1066 marc bytea,
1067 "encoding" varchar(40) NOT NULL default '',
1068 z3950random varchar(40) default NULL,
1069 PRIMARY KEY (id)
1070 );
1071 CREATE INDEX marc_breeding_title_idx ON marc_breeding (title);
1072 CREATE INDEX marc_breeding_isbn_idx ON marc_breeding (isbn);
1073
1074 -- 
1075 -- Table structure for table marc_subfield_structure
1076 -- 
1077
1078 --DROP TABLE marc_subfield_structure;
1079
1080 CREATE TABLE marc_subfield_structure (
1081 tagfield varchar(3) NOT NULL default '',
1082 tagsubfield varchar(1) NOT NULL default '',
1083 liblibrarian varchar(255) NOT NULL default '',
1084 libopac varchar(255) NOT NULL default '',
1085 "repeatable" int NOT NULL default 0,
1086 mandatory int NOT NULL default 0,
1087 kohafield varchar(40) default NULL,
1088 tab int default NULL,
1089 authorised_value varchar(20) default NULL,
1090 authtypecode varchar(20) default NULL,
1091 value_builder varchar(80) default NULL,
1092 isurl int default NULL,
1093 hidden int default NULL,
1094 frameworkcode varchar(4) NOT NULL default '',
1095 seealso varchar(1100) default NULL,
1096 link varchar(80) default NULL,
1097 defaultvalue text default NULL,
1098 PRIMARY KEY (frameworkcode,tagfield,tagsubfield)
1099 );
1100 CREATE INDEX marc_subfield_structure_kohafield_2_idx ON marc_subfield_structure (kohafield);
1101 CREATE INDEX marc_subfield_structure_tab_idx ON marc_subfield_structure (frameworkcode,tab);
1102 CREATE INDEX marc_subfield_structure_kohafield_idx ON marc_subfield_structure (frameworkcode,kohafield);
1103
1104 -- 
1105 -- Table structure for table marc_tag_structure
1106 -- 
1107
1108 --DROP TABLE marc_tag_structure;
1109
1110 CREATE TABLE marc_tag_structure (
1111 tagfield varchar(3) NOT NULL default '',
1112 liblibrarian varchar(255) NOT NULL default '',
1113 libopac varchar(255) NOT NULL default '',
1114 "repeatable" int NOT NULL default 0,
1115 mandatory int NOT NULL default 0,
1116 authorised_value varchar(10) default NULL,
1117 frameworkcode varchar(4) NOT NULL default '',
1118 PRIMARY KEY (frameworkcode,tagfield)
1119 );
1120
1121 -- 
1122 -- Table structure for table notifys
1123 -- 
1124
1125 --DROP TABLE notifys;
1126
1127 CREATE TABLE notifys (
1128 notify_id int NOT NULL default 0,
1129 borrowernumber int NOT NULL default 0,
1130 itemnumber int NOT NULL default 0,
1131 notify_date date default NULL,
1132 notify_send_date date default NULL,
1133 notify_level int NOT NULL default 0,
1134 method varchar(20) NOT NULL default ''
1135 );
1136
1137 -- 
1138 -- Table structure for table nozebra
1139 -- 
1140 CREATE TABLE nozebra (
1141 server varchar(20) NOT NULL,
1142 indexname varchar(40) NOT NULL,
1143 value varchar(250) NOT NULL,
1144 biblionumbers text NOT NULL
1145 );
1146 CREATE INDEX nozebra_indexname_idx ON nozebra (server,indexname);
1147 CREATE INDEX nozebra_value_idx ON nozebra (server,value);
1148
1149 -- 
1150 -- Table structure for table opac_news
1151 -- 
1152
1153 --DROP TABLE opac_news;
1154
1155 CREATE TABLE opac_news (
1156 idnew SERIAL NOT NULL,
1157 title varchar(250) NOT NULL default '',
1158 "new" text NOT NULL,
1159 lang varchar(4) NOT NULL default '',
1160 "timestamp" timestamp NOT NULL default CURRENT_TIMESTAMP,
1161 expirationdate date default NULL,
1162 number int default NULL,
1163 PRIMARY KEY (idnew)
1164 );
1165
1166 -- 
1167 -- Table structure for table overduerules
1168 -- 
1169
1170 --DROP TABLE overduerules;
1171
1172 CREATE TABLE overduerules (
1173 branchcode varchar(10) NOT NULL default '',
1174 categorycode varchar(2) NOT NULL default '',
1175 delay1 int default 0,
1176 letter1 varchar(20) default NULL,
1177 debarred1 varchar(1) default 0,
1178 delay2 int default 0,
1179 debarred2 varchar(1) default 0,
1180 letter2 varchar(20) default NULL,
1181 delay3 int default 0,
1182 letter3 varchar(20) default NULL,
1183 debarred3 int default 0,
1184 PRIMARY KEY (branchcode,categorycode)
1185 );
1186
1187 -- 
1188 -- Table structure for table printers
1189 -- 
1190
1191 --DROP TABLE printers;
1192
1193 CREATE TABLE printers (
1194 printername varchar(40) NOT NULL default '',
1195 printqueue varchar(20) default NULL,
1196 printtype varchar(20) default NULL,
1197 PRIMARY KEY (printername)
1198 );
1199
1200 -- 
1201 -- Table structure for table repeatable_holidays
1202 -- 
1203
1204 --DROP TABLE repeatable_holidays;
1205
1206 CREATE TABLE repeatable_holidays (
1207 id BIGSERIAL,
1208 branchcode varchar(10) NOT NULL default '',
1209 weekday int default NULL,
1210 "day" int default NULL,
1211 "month" int default NULL,
1212 title varchar(50) NOT NULL default '',
1213 description text NOT NULL,
1214 PRIMARY KEY (id)
1215 );
1216
1217 -- 
1218 -- Table structure for table reserveCONSTRAINTs
1219 -- 
1220
1221 --DROP TABLE reserveCONSTRAINTs;
1222
1223 CREATE TABLE reserveCONSTRAINTs (
1224 borrowernumber int NOT NULL default 0,
1225 reservedate date default NULL,
1226 biblionumber int NOT NULL default 0,
1227 biblioitemnumber int default NULL,
1228 "timestamp" timestamp NOT NULL default (now())
1229 );
1230
1231 -- 
1232 -- Table structure for table reserves
1233 -- 
1234
1235 --DROP TABLE reserves;
1236
1237 CREATE TABLE reserves (
1238 borrowernumber int NOT NULL default 0,
1239 reservedate date default NULL,
1240 biblionumber int NOT NULL default 0,
1241 CONSTRAINTtype varchar(1) default NULL,
1242 branchcode varchar(10) default NULL,
1243 notificationdate date default NULL,
1244 reminderdate date default NULL,
1245 cancellationdate date default NULL,
1246 reservenotes text,
1247 priority int default NULL,
1248 found varchar(1) default NULL,
1249 "timestamp" timestamp NOT NULL default (now()),
1250 itemnumber int default NULL,
1251 waitingdate date default NULL
1252 );
1253 CREATE INDEX reserves_borrowernumber_idx ON reserves (borrowernumber);
1254 CREATE INDEX reserves_biblionumber__idx ON reserves (biblionumber);
1255 CREATE INDEX reserves_itemnumber__idx ON reserves (itemnumber);
1256 CREATE INDEX reserves_branchcode_idx ON reserves (branchcode);
1257
1258 -- 
1259 -- Table structure for table reviews
1260 -- 
1261
1262 --DROP TABLE reviews;
1263
1264 CREATE TABLE reviews (
1265 reviewid BIGSERIAL,
1266 borrowernumber int default NULL,
1267 biblionumber int default NULL,
1268 review text,
1269 approved int default NULL,
1270 datereviewed timestamp default NULL,
1271 PRIMARY KEY (reviewid)
1272 );
1273
1274 -- 
1275 -- Table structure for table roadtype
1276 -- 
1277
1278 --DROP TABLE roadtype;
1279
1280 CREATE TABLE roadtype (
1281 roadtypeid BIGSERIAL,
1282 road_type varchar(100) NOT NULL default '',
1283 PRIMARY KEY (roadtypeid)
1284 );
1285
1286 -- 
1287 -- Table structure for table serial
1288 -- 
1289
1290 --DROP TABLE serial;
1291
1292 CREATE TABLE serial (
1293 serialid BIGSERIAL,
1294 biblionumber varchar(100) NOT NULL default '',
1295 subscriptionid varchar(100) NOT NULL default '',
1296 serialseq varchar(100) NOT NULL default '',
1297 status int NOT NULL default 0,
1298 planneddate date default NULL,
1299 notes text,
1300 publisheddate date default NULL,
1301 itemnumber text,
1302 claimdate date default NULL,
1303 routingnotes text,
1304 PRIMARY KEY (serialid)
1305 );
1306
1307 -- 
1308 -- Table structure for table sessions
1309 -- 
1310
1311 --DROP TABLE sessions;
1312
1313 CREATE TABLE sessions (
1314 id varchar(32) UNIQUE NOT NULL,
1315 a_session text NOT NULL
1316 );
1317
1318 -- 
1319 -- Table structure for table special_holidays
1320 -- 
1321
1322 --DROP TABLE special_holidays;
1323
1324 CREATE TABLE special_holidays (
1325 id BIGSERIAL,
1326 branchcode varchar(10) NOT NULL default '',
1327 "day" int NOT NULL default 0,
1328 "month" int NOT NULL default 0,
1329 "year" int NOT NULL default 0,
1330 isexception int NOT NULL default '1',
1331 title varchar(50) NOT NULL default '',
1332 description text NOT NULL,
1333 PRIMARY KEY (id)
1334 );
1335
1336 -- 
1337 -- Table structure for table statistics
1338 -- 
1339
1340 --DROP TABLE statistics;
1341
1342 CREATE TABLE statistics (
1343 datetime timestamp default NULL,
1344 "timestamp" timestamp default NULL,
1345 branch varchar(10) default NULL,
1346 proccode varchar(4) default NULL,
1347 value numeric(16,4) default NULL,
1348 "type" varchar(16) default NULL,
1349 other text,
1350 usercode varchar(10) default NULL,
1351 itemnumber int default NULL,
1352 itemtype varchar(10) default NULL,
1353 borrowernumber int default NULL,
1354 associatedborrower int default NULL
1355 );
1356 CREATE INDEX statistics_timeidx_idx ON statistics (datetime);
1357
1358 -- 
1359 -- Table structure for table stopwords
1360 -- 
1361
1362 --DROP TABLE stopwords;
1363
1364 CREATE TABLE stopwords (
1365 word varchar(255) default NULL
1366 );
1367
1368 -- 
1369 -- Table structure for table subscription
1370 -- 
1371
1372 --DROP TABLE subscription;
1373
1374 CREATE TABLE subscription (
1375 biblionumber int NOT NULL default 0,
1376 subscriptionid BIGSERIAL,
1377 librarian varchar(100) default '',
1378 startdate date default NULL,
1379 aqbooksellerid int default 0,
1380 cost int default 0,
1381 aqbudgetid int default 0,
1382 weeklength int default 0,
1383 monthlength int default 0,
1384 numberlength int default 0,
1385 periodicity int default 0,
1386 dow varchar(100) default '',
1387 numberingmethod varchar(100) default '',
1388 notes text,
1389 status varchar(100) NOT NULL default '',
1390 add1 int default 0,
1391 every1 int default 0,
1392 whenmorethan1 int default 0,
1393 setto1 int default NULL,
1394 lastvalue1 int default NULL,
1395 add2 int default 0,
1396 every2 int default 0,
1397 whenmorethan2 int default 0,
1398 setto2 int default NULL,
1399 lastvalue2 int default NULL,
1400 add3 int default 0,
1401 every3 int default 0,
1402 innerloop1 int default 0,
1403 innerloop2 int default 0,
1404 innerloop3 int default 0,
1405 whenmorethan3 int default 0,
1406 setto3 int default NULL,
1407 lastvalue3 int default NULL,
1408 issuesatonce int NOT NULL default '1',
1409 firstacquidate date default NULL,
1410 manualhistory int NOT NULL default 0,
1411 irregularity text,
1412 letter varchar(20) default NULL,
1413 numberpattern int default 0,
1414 distributedto text,
1415 internalnotes text,
1416 callnumber text,
1417 branchcode varchar(10) NOT NULL default '',
1418 hemisphere int default 0,
1419 PRIMARY KEY (subscriptionid)
1420 );
1421
1422 -- 
1423 -- Table structure for table subscriptionhistory
1424 -- 
1425
1426 --DROP TABLE subscriptionhistory;
1427
1428 CREATE TABLE subscriptionhistory (
1429 biblionumber int NOT NULL default 0,
1430 subscriptionid int NOT NULL default 0,
1431 histstartdate date default NULL,
1432 enddate date default NULL,
1433 missinglist text NOT NULL,
1434 recievedlist text NOT NULL,
1435 opacnote varchar(150) NOT NULL default '',
1436 librariannote varchar(150) NOT NULL default '',
1437 PRIMARY KEY (subscriptionid)
1438 );
1439 CREATE INDEX subscriptionhistory_biblionumber_idx ON subscriptionhistory (biblionumber);
1440
1441 -- 
1442 -- Table structure for table subscriptionroutinglist
1443 -- 
1444
1445 --DROP TABLE subscriptionroutinglist;
1446
1447 CREATE TABLE subscriptionroutinglist (
1448 routingid BIGSERIAL,
1449 borrowernumber int default NULL,
1450 ranking int default NULL,
1451 subscriptionid int default NULL,
1452 PRIMARY KEY (routingid)
1453 );
1454
1455 -- 
1456 -- Table structure for table suggestions
1457 -- 
1458
1459 --DROP TABLE suggestions;
1460
1461 CREATE TABLE suggestions (
1462 suggestionid BIGSERIAL,
1463 suggestedby int NOT NULL default 0,
1464 managedby int default NULL,
1465 STATUS varchar(10) NOT NULL default '',
1466 note text,
1467 author varchar(80) default NULL,
1468 title varchar(80) default NULL,
1469 copyrightdate int default NULL,
1470 publishercode varchar(255) default NULL,
1471 date timestamp NOT NULL default (now()),
1472 volumedesc varchar(255) default NULL,
1473 publicationyear int default 0,
1474 place varchar(255) default NULL,
1475 isbn varchar(10) default NULL,
1476 mailoverseeing int default 0,
1477 biblionumber int default NULL,
1478 reason text,
1479 PRIMARY KEY (suggestionid)
1480 );
1481 CREATE INDEX suggestions_suggestedby_idx ON suggestions (suggestedby);
1482 CREATE INDEX suggestions_managedby_idx ON suggestions (managedby);
1483
1484 -- 
1485 -- Table structure for table systempreferences
1486 -- 
1487
1488 --DROP TABLE systempreferences;
1489
1490 CREATE TABLE systempreferences (
1491 variable varchar(50) NOT NULL default '',
1492 value text,
1493 options text,
1494 explanation text,
1495 type varchar(20) default NULL,
1496 PRIMARY KEY (variable)
1497 );
1498
1499 -- 
1500 -- Table structure for table tags
1501 -- 
1502
1503 --DROP TABLE tags;
1504
1505 CREATE TABLE tags (
1506 entry varchar(255) NOT NULL default '',
1507 weight int NOT NULL default 0,
1508 PRIMARY KEY (entry)
1509 );
1510
1511 -- 
1512 -- Table structure for table userflags
1513 -- 
1514
1515 --DROP TABLE userflags;
1516
1517 CREATE TABLE userflags (
1518 "bit" int NOT NULL default 0,
1519 flag varchar(30) default NULL,
1520 flagdesc varchar(255) default NULL,
1521 defaulton int default NULL,
1522 PRIMARY KEY (bit)
1523 );
1524
1525 -- 
1526 -- Table structure for table virtualshelves
1527 -- 
1528
1529 --DROP TABLE virtualshelves;
1530
1531 CREATE TABLE virtualshelves (
1532 shelfnumber BIGSERIAL,
1533 shelfname varchar(255) default NULL,
1534 "owner" varchar(80) default NULL,
1535 category varchar(1) default NULL,
1536 PRIMARY KEY (shelfnumber)
1537 );
1538
1539 -- 
1540 -- Table structure for table virtualshelfcontents
1541 -- 
1542
1543 --DROP TABLE virtualshelfcontents;
1544
1545 CREATE TABLE virtualshelfcontents (
1546 shelfnumber int NOT NULL default 0,
1547 biblionumber int NOT NULL default 0,
1548 flags int default NULL,
1549 dateadded timestamp NULL default NULL
1550 );
1551 CREATE INDEX virtualshelfcontents_shelfnumber_idx ON virtualshelfcontents (shelfnumber);
1552 CREATE INDEX virtualshelfcontents_biblionumber_idx ON virtualshelfcontents (biblionumber);
1553
1554 -- 
1555 -- Table structure for table z3950servers
1556 -- 
1557
1558 --DROP TABLE z3950servers;
1559
1560 CREATE TABLE z3950servers (
1561 host varchar(255) default NULL,
1562 port int default NULL,
1563 db varchar(255) default NULL,
1564 userid varchar(255) default NULL,
1565 "password" varchar(255) default NULL,
1566 name text,
1567 id BIGSERIAL,
1568 checked int default NULL,
1569 rank int default NULL,
1570 syntax varchar(80) default NULL,
1571 icon text,
1572 "position" varchar(10) NOT NULL default 'primary',
1573 "type" varchar(10) NOT NULL default 'zed',
1574 description text NOT NULL,
1575 CHECK ( position IN ('primary', 'secondary', '' )),
1576 CHECK ( type IN ('zed', 'opensearch', '' )),
1577 PRIMARY KEY (id)
1578 );
1579
1580 -- 
1581 -- Table structure for table zebraqueue
1582 -- 
1583
1584 --DROP TABLE zebraqueue;
1585
1586 CREATE TABLE zebraqueue (
1587 id BIGSERIAL,
1588 biblio_auth_number int NOT NULL default 0,
1589 operation varchar(20) NOT NULL default '',
1590 server varchar(20) NOT NULL default '',
1591 PRIMARY KEY (id)
1592 );
1593
1594 --
1595 -- Add FK's last... (just because...)
1596 --
1597
1598 ALTER TABLE accountlines ADD CONSTRAINT accountlines_ibfk_1 FOREIGN KEY (borrowernumber) REFERENCES borrowers (borrowernumber) MATCH SIMPLE ON DELETE CASCADE ON UPDATE CASCADE;
1599 ALTER TABLE accountlines ADD CONSTRAINT accountlines_ibfk_2 FOREIGN KEY (itemnumber) REFERENCES items (itemnumber) ON DELETE SET NULL ON UPDATE SET NULL;
1600
1601 -- Added this FK based on the FK in other tables referencing borrowers.borrowernumber  -fbcit
1602
1603 ALTER TABLE accountoffsets ADD CONSTRAINT accountoffsets_ibfk_1 FOREIGN KEY (borrowernumber) REFERENCES borrowers (borrowernumber) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE;
1604
1605 --
1606
1607 ALTER TABLE aqbasket ADD CONSTRAINT aqbasket_ibfk_1 FOREIGN KEY (booksellerid) REFERENCES aqbooksellers (id) ON UPDATE CASCADE;
1608 ALTER TABLE aqbooksellers ADD CONSTRAINT aqbooksellers_ibfk_1 FOREIGN KEY (listprice) REFERENCES currency (currency) ON DELETE CASCADE ON UPDATE CASCADE;
1609 ALTER TABLE aqbooksellers ADD CONSTRAINT aqbooksellers_ibfk_2 FOREIGN KEY (invoiceprice) REFERENCES currency (currency) ON DELETE CASCADE ON UPDATE CASCADE;
1610 ALTER TABLE aqorderbreakdown ADD CONSTRAINT aqorderbreakdown_ibfk_1 FOREIGN KEY (ordernumber) REFERENCES aqorders (ordernumber) ON DELETE CASCADE ON UPDATE CASCADE;
1611 ALTER TABLE aqorderbreakdown ADD CONSTRAINT aqorderbreakdown_ibfk_2 FOREIGN KEY (bookfundid) REFERENCES aqbookfund (bookfundid) ON DELETE CASCADE ON UPDATE CASCADE;
1612 ALTER TABLE aqorders ADD CONSTRAINT aqorders_ibfk_1 FOREIGN KEY (basketno) REFERENCES aqbasket (basketno) ON DELETE CASCADE ON UPDATE CASCADE;
1613 ALTER TABLE aqorders ADD CONSTRAINT aqorders_ibfk_2 FOREIGN KEY (biblionumber) REFERENCES biblio (biblionumber) ON DELETE SET NULL ON UPDATE SET NULL;
1614 ALTER TABLE auth_tag_structure ADD CONSTRAINT auth_tag_structure_ibfk_1 FOREIGN KEY (authtypecode) REFERENCES auth_types (authtypecode) ON DELETE CASCADE ON UPDATE CASCADE;
1615 ALTER TABLE biblioitems ADD CONSTRAINT biblioitems_ibfk_1 FOREIGN KEY (biblionumber) REFERENCES biblio (biblionumber) ON DELETE CASCADE ON UPDATE CASCADE;
1616 ALTER TABLE borrowers ADD CONSTRAINT borrowers_ibfk_1 FOREIGN KEY (categorycode) REFERENCES categories (categorycode);
1617 ALTER TABLE borrowers ADD CONSTRAINT borrowers_ibfk_2 FOREIGN KEY (branchcode) REFERENCES branches (branchcode);
1618 ALTER TABLE branchrelations ADD CONSTRAINT branchrelations_ibfk_1 FOREIGN KEY (branchcode) REFERENCES branches (branchcode) ON DELETE CASCADE ON UPDATE CASCADE;
1619 ALTER TABLE branchrelations ADD CONSTRAINT branchrelations_ibfk_2 FOREIGN KEY (categorycode) REFERENCES branchcategories (categorycode) ON DELETE CASCADE ON UPDATE CASCADE;
1620 ALTER TABLE branchtransfers ADD CONSTRAINT branchtransfers_ibfk_1 FOREIGN KEY (frombranch) REFERENCES branches (branchcode) ON DELETE CASCADE ON UPDATE CASCADE;
1621 ALTER TABLE branchtransfers ADD CONSTRAINT branchtransfers_ibfk_2 FOREIGN KEY (tobranch) REFERENCES branches (branchcode) ON DELETE CASCADE ON UPDATE CASCADE;
1622 ALTER TABLE branchtransfers ADD CONSTRAINT branchtransfers_ibfk_3 FOREIGN KEY (itemnumber) REFERENCES items (itemnumber) ON DELETE CASCADE ON UPDATE CASCADE;
1623 ALTER TABLE class_sources ADD CONSTRAINT class_sources_ibfk_1 FOREIGN KEY (class_sort_rule) REFERENCES class_sort_rules (class_sort_rule);
1624 ALTER TABLE issues ADD CONSTRAINT issues_ibfk_1 FOREIGN KEY (borrowernumber) REFERENCES borrowers (borrowernumber) MATCH SIMPLE ON DELETE SET NULL ON UPDATE SET NULL;
1625 ALTER TABLE issues ADD CONSTRAINT issues_ibfk_2 FOREIGN KEY (itemnumber) REFERENCES items (itemnumber) ON DELETE SET NULL ON UPDATE SET NULL;
1626 ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (biblioitemnumber) REFERENCES biblioitems (biblioitemnumber) ON DELETE CASCADE ON UPDATE CASCADE;
1627 ALTER TABLE items ADD CONSTRAINT items_ibfk_2 FOREIGN KEY (homebranch) REFERENCES branches (branchcode) ON UPDATE CASCADE;
1628 ALTER TABLE items ADD CONSTRAINT items_ibfk_3 FOREIGN KEY (holdingbranch) REFERENCES branches (branchcode) ON UPDATE CASCADE;
1629 ALTER TABLE reserves ADD CONSTRAINT reserves_ibfk_1 FOREIGN KEY (borrowernumber) REFERENCES borrowers (borrowernumber) MATCH SIMPLE ON DELETE CASCADE ON UPDATE CASCADE;
1630 ALTER TABLE reserves ADD CONSTRAINT reserves_ibfk_2 FOREIGN KEY (biblionumber) REFERENCES biblio (biblionumber) ON DELETE CASCADE ON UPDATE CASCADE;
1631 ALTER TABLE reserves ADD CONSTRAINT reserves_ibfk_3 FOREIGN KEY (itemnumber) REFERENCES items (itemnumber) ON DELETE CASCADE ON UPDATE CASCADE;
1632 ALTER TABLE reserves ADD CONSTRAINT reserves_ibfk_4 FOREIGN KEY (branchcode) REFERENCES branches (branchcode) ON DELETE CASCADE ON UPDATE CASCADE;
1633 ALTER TABLE virtualshelfcontents ADD CONSTRAINT virtualshelfcontents_ibfk_1 FOREIGN KEY (shelfnumber) REFERENCES virtualshelves (shelfnumber) ON DELETE CASCADE ON UPDATE CASCADE;
1634 ALTER TABLE virtualshelfcontents ADD CONSTRAINT virtualshelfcontents_ibfk_2 FOREIGN KEY (biblionumber) REFERENCES biblio (biblionumber) ON DELETE CASCADE ON UPDATE CASCADE;
1635
1636
1637 --
1638 -- Table for branch_transfer_limits
1639 --
1640 CREATE SEQUENCE branch_transfer_limits_limitId_seq START 1;
1641
1642 CREATE TABLE branch_transfer_limits (
1643 limitId int PRIMARY KEY DEFAULT nextval('branch_transfer_limits_limitId_seq'),
1644 toBranch varchar(4) NOT NULL,
1645 fromBranch varchar(4) NOT NULL,
1646 itemtype varchar(4) NOT NULL,
1647 PRIMARY KEY  (limitId)
1648 );
1649
1650
1651 --commit;