
tim@489: /* 
tim@489:  * Lookup-Tabelle für das FIS anhand eines Gebietes.
tim@489:  * Diese Tabelle ist in der ArcSDE als Layer zu integrieren.
tim@489:  * Die Inhalte der Spalte id_fis müssen mit den vergebenen IDs
tim@489:  * in der Konfiguration des Artefaktservers übereinstimmen.
tim@489:  *
tim@489:  * Abbildung als Layer in der ArcSDE
tim@490:  * Das hier bereitgestellte SQL ist lediglich als Anhalt zu betrachten.
tim@489:  */
tim@489: create table fis_has_region (
tim@490:     id_fis varchar2(30 char) not null, /* TODO maximale Länge bestimmen und ggf. anpassen.*/
tim@489:     description varchar2(90 char),
tim@490:     geometry ??? not null
tim@489: );
tim@489: 
tim@489: ALTER TABLE fis_has_region ADD PRIMARY KEY (id_fis);
tim@489: 
tim@489: /*
tim@489:  * Lookup-Tabelle für das FIS anhand eines Mapservices.
tim@489:  * Die Inhalte der Spalte id_fis müssen mit den vergebenen IDs
tim@489:  * in der Konfiguration des Artefaktservers übereinstimmen.
tim@489:  * Die Inhalte der Spalte id_mapservice müssen mit den vergebenen
tim@489:  * IDs der Services im Mapviewer übereinstimmen.
tim@489:  */
tim@489: create table fis_has_mapservice(
tim@490:     id_fis varchar2(30 char) not null, /* TODO maximale Länge bestimmen und ggf. anpassen.*/
tim@490:     id_mapservice varchar2(100 char) not null /* TODO maximale Länge bestimmen und ggf. anpassen.*/
tim@489: );
tim@489: 
tim@489: ALTER TABLE fis_has_mapservice ADD PRIMARY KEY (id_fis,id_mapservice);
tim@489: 
tim@489: /**
tim@489:  * Lookuptabelle zwischen einer LayerID und dem dazugehörigen 
tim@489:  * Mapservice und den im Layer dargestellten Parameter.
tim@489:  * Fremdschlüsselbeziehung zu der Tabelle fis_has_mapservice.
tim@489:  * Primärschlüssel: id_mapservice, id_layer, id_parameter
tim@489:  * id_parameter referenziert zusätzlich die Tabelle MEDIAN.PARAMETER.
tim@489:  * 
tim@489:  * Auf eine explizite Abbildung von GroupLayern kann verzichtet werden,
tim@489:  * da sie lediglich einen "ordnenden" Charakter haben.
tim@489:  * vgl. S 52 Pflichtenheft.
tim@489:  * 
tim@489:  * Über id_group wird abgebildet ob ein Layer zu einer Gruppe von
tim@489:  * Layern gehört.
tim@489:  */
tim@489: create table layer_has_parameter(
tim@490:     id_mapservice varchar2(100 char) not null, /* TODO maximale Länge bestimmen und ggf. anpassen.*/
tim@490:     id_layer varchar2(30 char) not null, /* TODO maximale Länge bestimmen und ggf. anpassen.*/
tim@490:     id_group varchar2(30 char ), /* TODO maximale Länge bestimmen und ggf. anpassen.*/
tim@489:     id_parameter NUMBER(10) not null /* Referenz zur Tabelle MEDIAN.PARAMETER */
tim@489: );
tim@489: 
tim@489: ALTER TABLE layer_has_parameter ADD 
tim@489:       PRIMARY KEY (id_mapservice,id_layer,id_parameter);
tim@489: ALTER TABLE layer_has_parameter ADD (CONSTRAINT fk_layer_has_parameter1) 
tim@489:       FOREIGN KEY (id_mapservice) 
tim@489:       REFERENCES fis_has_mapservice(id_mapservice);
tim@489: 
tim@489: /**
tim@489:  * Lookuptabelle ob ein Mapservice genau einen Parameter darstellt.
tim@489:  * Wenn in dieser Tabelle nichts vorhanden ist muss unter zurhilfenahme
tim@489:  * der Layer-ID in der Tabelle layer_has_parameter gesucht werden.
tim@489:  * Die Inhalte der Spalte id_mapservice müssen mit den vergebenen
tim@489:  * IDs der Services im Mapviewer übereinstimmen.
tim@489:  * id_parameter referenziert zusätzlich die Tabelle MEDIAN.PARAMETER.
tim@489:  */
tim@489: create table mapservice_has_parameter(
tim@490:     id_mapservice varchar2(100 char) not null, /* TODO maximale Länge bestimmen und ggf. anpassen.*/
tim@489:     id_parameter NUMBER(10) not null /* Referenz zur Tabelle MEDIAN.PARAMETER */
tim@489: );
tim@489: 
tim@489: 
tim@489: ALTER TABLE mapservice_has_parameter ADD 
tim@489:       PRIMARY KEY (id_mapservice,id_parameter);



