"Fossies" - the Fresh Open Source Software Archive

Member "4.6.1/db/migrations/08_step_117_studienmodule.php" (8 Apr 2021, 10174 Bytes) of package /linux/www/studip-4.6.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) PHP source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 <?
    2 class Step117StudienModule extends Migration
    3 {
    4     private $sql_up = 
    5 "
    6 -- 
    7 -- Tabellenstruktur für Tabelle `his_abschl`
    8 -- 
    9 
   10 CREATE TABLE `his_abschl` (
   11   `abint` char(2) default NULL,
   12   `aikz` char(1) default NULL,
   13   `ktxt` char(10) default NULL,
   14   `dtxt` char(25) default NULL,
   15   `ltxt` char(100) default NULL,
   16   `astat` char(2) default NULL,
   17   `hrst` char(10) default NULL,
   18   `part` char(2) default NULL,
   19   `anzstg` smallint(6) default NULL,
   20   `kzfaarray` char(10) default NULL,
   21   `mag_laa` char(1) default NULL,
   22   `sortkz1` char(2) default NULL,
   23   `anzstgmin` smallint(6) default NULL,
   24   `sprache` char(3) default NULL,
   25   `refabint` char(2) default NULL,
   26   `efh` char(4) default NULL,
   27   PRIMARY KEY  (`abint`)
   28 ) ENGINE=MyISAM;
   29 
   30 -- --------------------------------------------------------
   31 
   32 -- 
   33 -- Tabellenstruktur für Tabelle `his_abstgv`
   34 -- 
   35 
   36 CREATE TABLE `his_abstgv` (
   37   `ktxt` varchar(50) default NULL,
   38   `dtxt` varchar(50) default NULL,
   39   `ltxt` varchar(100) default NULL,
   40   `fb` char(2) default NULL,
   41   `kzfa` char(1) NOT NULL default '',
   42   `kzfaarray` char(3) default NULL,
   43   `abschl` char(2) NOT NULL default '',
   44   `stg` char(3) NOT NULL default '',
   45   `pversion` int(11) NOT NULL default '0',
   46   `regelstz` tinyint(2) default NULL,
   47   `login_part` char(2) default NULL,
   48   `studip_studiengang` varchar(32) NOT NULL default '',
   49   PRIMARY KEY  (`abschl`,`stg`,`kzfa`,`pversion`),
   50   KEY `studip_studiengang` (`studip_studiengang`)
   51 ) ENGINE=MyISAM;
   52 
   53 -- --------------------------------------------------------
   54 
   55 -- 
   56 -- Tabellenstruktur für Tabelle `his_pvers`
   57 -- 
   58 
   59 CREATE TABLE `his_pvers` (
   60   `pvers` smallint(6) default NULL,
   61   `aikz` char(1) default NULL,
   62   `ktxt` char(10) default NULL,
   63   `dtxt` char(25) default NULL,
   64   `ltxt` char(50) default NULL,
   65   `sprache` char(3) default NULL,
   66   `refpvers` smallint(6) default NULL,
   67   PRIMARY KEY  (`pvers`)
   68 ) ENGINE=MyISAM;
   69 
   70 -- --------------------------------------------------------
   71 
   72 -- 
   73 -- Tabellenstruktur für Tabelle `his_stg`
   74 -- 
   75 
   76 CREATE TABLE `his_stg` (
   77   `stg` char(3) NOT NULL default '',
   78   `ktxt` varchar(10) default NULL,
   79   `dtxt` varchar(25) default NULL,
   80   `ltxt` varchar(100) default NULL,
   81   `fb` char(2) default NULL,
   82   PRIMARY KEY  (`stg`)
   83 ) ENGINE=MyISAM COMMENT='Studienfaecher aus der HIS DB';
   84 
   85 -- --------------------------------------------------------
   86 
   87 -- 
   88 -- Tabellenstruktur für Tabelle `stm_abstract`
   89 -- 
   90 
   91 CREATE TABLE `stm_abstract` (
   92   `stm_abstr_id` varchar(32) NOT NULL default '',
   93   `id_number` varchar(10) default NULL COMMENT 'alphanummerische Identifikationsnummer für das Modul',
   94   `duration` varchar(155) default NULL,
   95   `credits` tinyint(3) unsigned default NULL COMMENT 'Anzahl der Leistungspunkte/Kreditpunkte',
   96   `workload` smallint(6) unsigned default NULL COMMENT 'Studentischer Arbeitsaufwand in Stunden',
   97   `turnus` tinyint(1) default NULL COMMENT '(optional) Angebotsturnus - Modulbeginn',
   98   `mkdate` int(20) default NULL COMMENT 'Erstellungdatum',
   99   `chdate` int(20) default NULL COMMENT 'Datum der letzten Aenderung',
  100   `homeinst` varchar(32) default NULL,
  101   PRIMARY KEY  (`stm_abstr_id`)
  102 ) ENGINE=MyISAM COMMENT='abstrakte Module';
  103 
  104 -- --------------------------------------------------------
  105 
  106 -- 
  107 -- Tabellenstruktur für Tabelle `stm_abstract_assign`
  108 -- 
  109 
  110 CREATE TABLE `stm_abstract_assign` (
  111   `stm_abstr_id` varchar(32) NOT NULL default '',
  112   `stm_type_id` varchar(32) NOT NULL default '' COMMENT 'ID eines Modultyps',
  113   `abschl` char(3) NOT NULL default '' COMMENT 'ID eines Studienabschlusses',
  114   `stg` char(3) NOT NULL default '' COMMENT 'ID eines Studienprogramms/-fachs',
  115   `pversion` varchar(8) NOT NULL default '' COMMENT 'Version der Prüfungsordnung',
  116   `earliest` tinyint(4) default NULL COMMENT 'frührester Zeitpunkt (Semester)',
  117   `latest` tinyint(4) default NULL COMMENT 'spätester Zpkt.',
  118   `recommed` tinyint(4) default NULL COMMENT 'empfohlener Zpkt.',
  119   PRIMARY KEY  (`stm_abstr_id`,`abschl`,`stg`,`pversion`),
  120   KEY `studycourse` (`abschl`,`stg`)
  121 ) ENGINE=MyISAM COMMENT='Zuordnung abstrakte Module <-> Studienprogramme';
  122 
  123 -- --------------------------------------------------------
  124 
  125 -- 
  126 -- Tabellenstruktur für Tabelle `stm_abstract_elements`
  127 -- 
  128 
  129 CREATE TABLE `stm_abstract_elements` (
  130   `element_id` varchar(32) NOT NULL default '' COMMENT 'ID eines abstrakten Modulbestandzeiles',
  131   `stm_abstr_id` varchar(32) NOT NULL default '' COMMENT 'ID eines abstrakten Studienmodules',
  132   `element_type_id` varchar(32) NOT NULL default '' COMMENT 'um welche Art von Element handelt es sich',
  133   `custom_name` varchar(50) default NULL COMMENT 'selbstgewählter Name',
  134   `sws` tinyint(4) NOT NULL default '0' COMMENT 'Semesterwochenstunden für den Bestandteil',
  135   `workload` int(4) NOT NULL default '0',
  136   `semester` tinyint(1) default NULL COMMENT 'Sommer od. Winter (Sommer = 1; Winter = 2)',
  137   `elementgroup` tinyint(4) NOT NULL default '0' COMMENT 'Kombinationsvariante',
  138   `position` tinyint(4) NOT NULL default '0' COMMENT 'Reihenfolge ',
  139   PRIMARY KEY  (`element_id`),
  140   UNIQUE KEY `elem_integr` (`stm_abstr_id`,`elementgroup`,`position`)
  141 ) ENGINE=MyISAM COMMENT='Bestandteile eines Abstrakten Moduls (Elemente)';
  142 
  143 -- --------------------------------------------------------
  144 
  145 -- 
  146 -- Tabellenstruktur für Tabelle `stm_abstract_text`
  147 -- 
  148 
  149 CREATE TABLE `stm_abstract_text` (
  150   `stm_abstr_id` varchar(32) NOT NULL default '' COMMENT 'ID des abstrakten Studienmodules',
  151   `lang_id` varchar(32) NOT NULL default '' COMMENT 'ID der verwendeten Sprache',
  152   `title` varchar(155) NOT NULL default '' COMMENT 'Allgemeiner Modultitel (Name des Moduls)',
  153   `subtitle` varchar(155) default NULL COMMENT 'optionaler Untertitel',
  154   `topics` text NOT NULL COMMENT 'Inhalte (behandelte Themen etc.)',
  155   `aims` text NOT NULL COMMENT 'Lernziele',
  156   `hints` text,
  157   PRIMARY KEY  (`stm_abstr_id`,`lang_id`)
  158 ) ENGINE=MyISAM COMMENT='(mehrsprachige) Texte der abstrakten Module';
  159 
  160 -- --------------------------------------------------------
  161 
  162 -- 
  163 -- Tabellenstruktur für Tabelle `stm_abstract_types`
  164 -- 
  165 
  166 CREATE TABLE `stm_abstract_types` (
  167   `stm_type_id` varchar(32) NOT NULL default '' COMMENT 'ID eines Modultyps',
  168   `lang_id` varchar(32) NOT NULL default '' COMMENT 'ID der verwendeten Sprache',
  169   `abbrev` varchar(5) NOT NULL default '' COMMENT 'Abkuerzung',
  170   `name` varchar(25) NOT NULL default '' COMMENT 'vollstaendige Bezeichnung',
  171   PRIMARY KEY  (`stm_type_id`,`lang_id`)
  172 ) ENGINE=MyISAM COMMENT='Typen abstrakter Module';
  173 
  174 -- --------------------------------------------------------
  175 
  176 -- 
  177 -- Tabellenstruktur für Tabelle `stm_element_types`
  178 -- 
  179 
  180 CREATE TABLE `stm_element_types` (
  181   `element_type_id` varchar(32) NOT NULL default '' COMMENT 'ID des Modulbestandteils',
  182   `lang_id` varchar(32) NOT NULL default '' COMMENT 'ID der verwendeten Sprache',
  183   `abbrev` varchar(5) default NULL COMMENT 'Kurzname',
  184   `name` varchar(50) NOT NULL default '' COMMENT 'Name',
  185   PRIMARY KEY  (`element_type_id`,`lang_id`)
  186 ) ENGINE=MyISAM COMMENT='Typen von möglichen Bestandteilen eines abstrakten Moduls';
  187 
  188 -- --------------------------------------------------------
  189 
  190 -- 
  191 -- Tabellenstruktur für Tabelle `stm_instances`
  192 -- 
  193 
  194 CREATE TABLE `stm_instances` (
  195   `stm_instance_id` varchar(32) NOT NULL default '' COMMENT 'ID eines konkreten Studienmodules',
  196   `stm_abstr_id` varchar(32) NOT NULL default '' COMMENT 'ID eines abstrakten Studienmodules',
  197   `semester_id` varchar(32) NOT NULL default '' COMMENT 'ID des ersten Semesters in dem die Instanz stattfindet',
  198   `lang_id` varchar(32) NOT NULL default '' COMMENT 'ID der Sprache in der das Modul angeboten wird',
  199   `homeinst` varchar(32) default NULL COMMENT 'ID des anbietenden Institutes',
  200   `creator` varchar(32) NOT NULL,
  201   `responsible` varchar(32) default NULL COMMENT 'ID des Modulverantwortlichen Dozenten',
  202   `complete` tinyint(1) NOT NULL default '0' COMMENT 'Erfassung komplett (0=FALSE)',
  203   PRIMARY KEY  (`stm_instance_id`)
  204 ) ENGINE=MyISAM COMMENT='Instanzen der abstrakten Module';
  205 
  206 -- --------------------------------------------------------
  207 
  208 -- 
  209 -- Tabellenstruktur für Tabelle `stm_instances_elements`
  210 -- 
  211 
  212 CREATE TABLE `stm_instances_elements` (
  213   `stm_instance_id` varchar(32) NOT NULL default '' COMMENT 'ID eines konkreten Studienmodules',
  214   `element_id` varchar(32) NOT NULL default '' COMMENT 'ID des abstrakten Modulbestandteils',
  215   `sem_id` varchar(32) NOT NULL default '' COMMENT 'ID der konkreten Veranstaltung',
  216   PRIMARY KEY  (`stm_instance_id`,`element_id`,`sem_id`)
  217 ) ENGINE=MyISAM;
  218 
  219 -- --------------------------------------------------------
  220 
  221 -- 
  222 -- Tabellenstruktur für Tabelle `stm_instances_text`
  223 -- 
  224 
  225 CREATE TABLE `stm_instances_text` (
  226   `stm_instance_id` varchar(32) NOT NULL default '' COMMENT 'ID eines konkreten Studienmodules',
  227   `lang_id` varchar(32) NOT NULL default '' COMMENT 'ID der verwendeten Sprache',
  228   `title` varchar(155) NOT NULL default '' COMMENT 'Allgemeiner Modultitel',
  229   `subtitle` varchar(155) default NULL COMMENT 'optionaler Untertitel',
  230   `topics` text NOT NULL COMMENT 'Inhalte',
  231   `hints` text,
  232   PRIMARY KEY  (`stm_instance_id`,`lang_id`)
  233 ) ENGINE=MyISAM COMMENT='(mehrsprachige) Texte der instanziierten abstrakten Module';
  234 ";
  235 
  236     private $sql_down = "DROP TABLE IF EXISTS `his_abschl`, `his_abstgv`, `his_pvers`, `his_stg`, `stm_abstract`, `stm_abstract_assign`, `stm_abstract_elements`, `stm_abstract_text`, `stm_abstract_types`, `stm_element_types`, `stm_instances`, `stm_instances_elements`, `stm_instances_text`;";
  237     
  238     public function description ()
  239     {
  240         return 'modify db schema StEP00117 Studienmodulstrukturen; ';
  241     }
  242     
  243     public function up ()
  244     {
  245         $this->announce(get_class($this) . ": Creating db schema...");
  246         $statements = preg_split("/;[[:space:]]*\n/", $this->sql_up);
  247         foreach($statements as $sqlstatement) {
  248             DBManager::get()->exec($sqlstatement);    
  249         }
  250     }
  251     
  252     public function down ()
  253     {
  254         $this->announce(get_class($this) . ": Deleting db schema...");
  255         $statements = preg_split("/;[[:space:]]*\n/", $this->sql_down);
  256         foreach($statements as $sqlstatement) {
  257             DBManager::get()->exec($sqlstatement);    
  258         }
  259     }
  260 
  261 }