view gnv-artifacts/doc/schema/externalinterface_schema.sql @ 1145:dfe1ac687c7f tip

added tags
author Thomas Arendsen Hein <thomas@intevation.de>
date Fri, 28 Sep 2012 12:16:15 +0200
parents f953c9a559d8
children
line wrap: on
line source
/*
 * Copyright (c) 2010 by Intevation GmbH
 *
 * This program is free software under the LGPL (>=v2.1)
 * Read the file LGPL.txt coming with the software for details
 * or visit http://www.gnu.org/licenses/ if it does not exist.
 */

/*
 * Lookup-Tabelle für das FIS anhand eines Gebietes.
 * Diese Tabelle ist in der ArcSDE als Layer zu integrieren.
 * Die Inhalte der Spalte id_fis müssen mit den vergebenen IDs
 * in der Konfiguration des Artefaktservers übereinstimmen.
 *
 * Abbildung als Layer in der ArcSDE
 * Das hier bereitgestellte SQL ist lediglich als Anhalt zu betrachten.
 */
create table fis_has_region (
    id_fis varchar2(30 char) not null, /* TODO maximale Länge bestimmen und ggf. anpassen.*/
    description varchar2(90 char),
    geometry ??? not null
);

ALTER TABLE fis_has_region ADD PRIMARY KEY (id_fis);

/*
 * Lookup-Tabelle für das FIS anhand eines Mapservices.
 * Die Inhalte der Spalte id_fis müssen mit den vergebenen IDs
 * in der Konfiguration des Artefaktservers übereinstimmen.
 * Die Inhalte der Spalte id_mapservice müssen mit den vergebenen
 * IDs der Services im Mapviewer übereinstimmen.
 */
create table fis_has_mapservice(
    id_fis varchar2(30 char) not null, /* TODO maximale Länge bestimmen und ggf. anpassen.*/
    id_mapservice varchar2(100 char) not null /* TODO maximale Länge bestimmen und ggf. anpassen.*/
);

ALTER TABLE fis_has_mapservice ADD PRIMARY KEY (id_fis,id_mapservice);

/**
 * Lookuptabelle zwischen einer LayerID und dem dazugehörigen 
 * Mapservice und den im Layer dargestellten Parameter.
 * Fremdschlüsselbeziehung zu der Tabelle fis_has_mapservice.
 * Primärschlüssel: id_mapservice, id_layer, id_parameter
 * id_parameter referenziert zusätzlich die Tabelle MEDIAN.PARAMETER.
 * 
 * Auf eine explizite Abbildung von GroupLayern kann verzichtet werden,
 * da sie lediglich einen "ordnenden" Charakter haben.
 * vgl. S 52 Pflichtenheft.
 * 
 * Über id_group wird abgebildet ob ein Layer zu einer Gruppe von
 * Layern gehört.
 */
create table layer_has_parameter(
    id_mapservice varchar2(100 char) not null, /* TODO maximale Länge bestimmen und ggf. anpassen.*/
    id_layer NUMBER(10) not null, /* TODO maximale Länge bestimmen und ggf. anpassen.*/
    layer_name varchar2(30 char) not null, /* TODO maximale Länge bestimmen und ggf. anpassen.*/
    id_group varchar2(30 char ), /* TODO maximale Länge bestimmen und ggf. anpassen.*/
    id_parameter NUMBER(10) not null /* Referenz zur Tabelle MEDIAN.PARAMETER */
);

ALTER TABLE layer_has_parameter ADD 
      PRIMARY KEY (id_mapservice,id_layer,id_parameter);

/**
 * Lookuptabelle ob ein Mapservice genau einen Parameter darstellt.
 * Wenn in dieser Tabelle nichts vorhanden ist muss unter zurhilfenahme
 * der Layer-ID in der Tabelle layer_has_parameter gesucht werden.
 * Die Inhalte der Spalte id_mapservice müssen mit den vergebenen
 * IDs der Services im Mapviewer übereinstimmen.
 * id_parameter referenziert zusätzlich die Tabelle MEDIAN.PARAMETER.
 */
create table mapservice_has_parameter(
    id_mapservice varchar2(100 char) not null, /* TODO maximale Länge bestimmen und ggf. anpassen.*/
    id_parameter NUMBER(10) not null /* Referenz zur Tabelle MEDIAN.PARAMETER */
);


ALTER TABLE mapservice_has_parameter ADD 
      PRIMARY KEY (id_mapservice,id_parameter);

http://dive4elements.wald.intevation.org