[npl] / trunk / NationalProblemLibrary / create_tables2.sql Repository:
ViewVC logotype

View of /trunk/NationalProblemLibrary/create_tables2.sql

Parent Directory Parent Directory | Revision Log Revision Log


Revision 501 - (download) (annotate)
Tue Aug 7 15:16:11 2007 UTC (5 years, 9 months ago) by jj
File size: 4959 byte(s)
Put database tables inside the webwork database.

    1 ##############################################################################
    2 # W.K. Ziemer, 2004 wziemer@csulb.edu
    3 ##############################################################################
    4 
    5 
    6 # DBsubject is the basic classification
    7 # for problems, the subject area
    8 #
    9 DROP TABLE IF EXISTS `NPL-DBsubject`;
   10 CREATE TABLE `NPL-DBsubject`
   11 (
   12   DBsubject_id int(15) NOT NULL auto_increment,
   13   name varchar(127) NOT NULL,
   14   KEY DBsubject (name),
   15   PRIMARY KEY (DBsubject_id)
   16 );
   17 
   18 # DBchapter is a more refined classification
   19 # for problem types
   20 #
   21 DROP TABLE IF EXISTS `NPL-DBchapter`;
   22 CREATE TABLE `NPL-DBchapter`
   23 (
   24   DBchapter_id int(15) NOT NULL auto_increment,
   25   name varchar(127) NOT NULL,
   26   DBsubject_id int(15) DEFAULT 0 NOT NULL,
   27   KEY DBchapter (name),
   28   KEY (DBsubject_id),
   29   PRIMARY KEY (DBchapter_id)
   30 );
   31 
   32 # DBsection is the finest classification
   33 # for problem types
   34 #
   35 DROP TABLE IF EXISTS `NPL-DBsection`;
   36 CREATE TABLE `NPL-DBsection`
   37 (
   38   DBsection_id int(15) NOT NULL auto_increment,
   39   name varchar(255) NOT NULL,
   40   DBchapter_id int(15) DEFAULT 0 NOT NULL,
   41   KEY DBsection (name),
   42   KEY (DBchapter_id),
   43   PRIMARY KEY (DBsection_id)
   44 );
   45 
   46 # institution table contains all places using webwork
   47 #
   48 DROP TABLE IF EXISTS `NPL-institution`;
   49 CREATE TABLE `NPL-institution`
   50 (
   51   institution_id int (15) NOT NULL auto_increment,
   52   name varchar (255) NOT NULL,
   53   department varchar (255),
   54   address varchar (255),
   55   city varchar (255),
   56   state char(2),
   57   zipcode char(10),
   58   website varchar (255),
   59   KEY institution (name),
   60   PRIMARY KEY (institution_id)
   61 );
   62 
   63 # author table contains all problem authors
   64 #
   65 DROP TABLE IF EXISTS `NPL-author`;
   66 CREATE TABLE `NPL-author`
   67 (
   68   author_id int (15) NOT NULL auto_increment,
   69   institution_id int (15) NOT NULL,
   70   lastname varchar (100) NOT NULL,
   71   firstname varchar (100) NOT NULL,
   72   email varchar (255),
   73   KEY author (lastname, firstname),
   74   PRIMARY KEY (author_id)
   75 );
   76 
   77 # path table contains relative path, machine, and user ownership
   78 #
   79 DROP TABLE IF EXISTS `NPL-path`;
   80 CREATE TABLE `NPL-path`
   81 (
   82   path_id int(15) NOT NULL auto_increment,
   83   path varchar(127) NOT NULL,
   84   machine varchar(127),
   85   user varchar(127),
   86   KEY (path),
   87   PRIMARY KEY (path_id)
   88 );
   89 
   90 # pgfile table contains classification, location, and revision history about the .pg file
   91 #
   92 DROP TABLE IF EXISTS `NPL-pgfile`;
   93 CREATE TABLE `NPL-pgfile`
   94 (
   95   pgfile_id int(15) NOT NULL auto_increment,
   96   DBsection_id int(15) NOT NULL,
   97   author_id int(15),
   98   institution_id int(15),
   99   path_id int(15) NOT NULL,
  100   filename varchar(255) NOT NULL,
  101   history blob,
  102   PRIMARY KEY (pgfile_id)
  103 );
  104 
  105 # keywords for problems
  106 #
  107 DROP TABLE IF EXISTS `NPL-keyword`;
  108 CREATE TABLE `NPL-keyword`
  109 (
  110   keyword_id int(15) NOT NULL auto_increment,
  111   keyword varchar(65) NOT NULL,
  112   KEY (keyword),
  113   PRIMARY KEY (keyword_id)
  114 );
  115 
  116 # pgfile_keyword associates prolems with keywords
  117 #
  118 DROP TABLE IF EXISTS `NPL-pgfile-keyword`;
  119 CREATE TABLE `NPL-pgfile-keyword`
  120 (
  121   pgfile_id int(15) DEFAULT 0 NOT NULL,
  122   keyword_id int(15) DEFAULT 0 NOT NULL,
  123   KEY pgfile_keyword (keyword_id, pgfile_id),
  124   KEY pgfile (pgfile_id)
  125 );
  126 
  127 # pgfile_institution associates problems with institutions
  128 #
  129 DROP TABLE IF EXISTS `NPL-pgfile-institution`;
  130 CREATE TABLE `NPL-pgfile-institution`
  131 (
  132   pgfile_id int(15) DEFAULT 0 NOT NULL,
  133   institution_id int(15) DEFAULT 0 NOT NULL,
  134   PRIMARY KEY (institution_id, pgfile_id)
  135 );
  136 
  137 # textbook table contains textbook info
  138 #
  139 DROP TABLE IF EXISTS `NPL-textbook`;
  140 CREATE TABLE `NPL-textbook`
  141 (
  142   textbook_id int (15) NOT NULL auto_increment,
  143   title varchar (255) NOT NULL,
  144   edition int (3) DEFAULT 0 NOT NULL,
  145   author varchar (63) NOT NULL,
  146   publisher varchar (127),
  147   isbn char (15),
  148   pubdate varchar (27),
  149   PRIMARY KEY (textbook_id)
  150 );
  151 
  152 # weak table chapter
  153 # chapters from a textbook
  154 #
  155 DROP TABLE IF EXISTS `NPL-chapter`;
  156 CREATE TABLE `NPL-chapter`
  157 (
  158   chapter_id int (15) NOT NULL auto_increment,
  159   textbook_id int (15),
  160   number int(3),
  161   name varchar(127) NOT NULL,
  162   page int(4),
  163   PRIMARY KEY (chapter_id)
  164 
  165 );
  166 
  167 # weak table section
  168 # sections from a textbook chapter
  169 #
  170 DROP TABLE IF EXISTS `NPL-section`;
  171 CREATE TABLE `NPL-section`
  172 (
  173   section_id int(15) NOT NULL auto_increment,
  174   chapter_id int (15),
  175   number int(3),
  176   name varchar(127) NOT NULL,
  177   page int(4),
  178   PRIMARY KEY section (section_id)
  179 );
  180 
  181 # problem
  182 # problems from a textbook
  183 #
  184 DROP TABLE IF EXISTS `NPL-problem`;
  185 CREATE TABLE `NPL-problem`
  186 (
  187   problem_id int(15) NOT NULL auto_increment,
  188   section_id int(15),
  189   number int(4) NOT NULL,
  190   page int(4),
  191   #KEY (page, number),
  192   KEY (section_id),
  193   PRIMARY KEY (problem_id)
  194 
  195 );
  196 
  197 # pgfile_problem table
  198 # associates pgfiles to problems from a textbook.
  199 #
  200 DROP TABLE IF EXISTS `NPL-pgfile-problem`;
  201 CREATE TABLE `NPL-pgfile-problem`
  202 (
  203   pgfile_id int(15) DEFAULT 0 NOT NULL,
  204   problem_id int(15) DEFAULT 0 NOT NULL,
  205   PRIMARY KEY (pgfile_id, problem_id)
  206 );
  207 
  208 ##############################################################################
  209 # end of create_tables.sql
  210 ##############################################################################

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9