SL: DB-Tabellen korrigieren (Veraltet!)

edit | delete

Autor: Ralf v.d.Mark

eingetragen: Mittwoch, 24. August 2016 um 16:23 Uhr (34/2016 Kalenderwoche)

geändert: Dienstag, 23. März 2021 um 11:38 Uhr (12/2021 Kalenderwoche)

Keywords: Scopeland Oracle Tabellen korrigieren

Kategorien: DB: Oracle, Scopeland,

Text:

Achtung: Es ist jetzt möglich, diese Einstellungen direkt in Scopeland einzufügen, siehe Artikel: Techdox-Artikel 200


Inhalt des veralteten Artikels
Beim Löschen eines Eltern-Elementes muss sichergestellt sein, das auch alle Kind-Elemente mit gelöscht werden.
Da Datenbank-Verknüpfungen in Scopeland nicht angelegt werden, pflegen wir das nach.


In unserm Beispiel werden alle DB-Änderungen an der Tabelle "t_versiosystem" angehangen.


WICHTIG: Beim benennen der Scripte am besten einen Buchstaben vorsetzen, da die Ausführungsreihenfolge wichtig ist.


Nachdem man die Scripte (wie in den Abb. 1 und 2. "dboptimierung1.jpg" und "dboptimierung2.jpg") eingefügt wurden, muss man die Tabelle "devalidieren" und anschließend wieder "validieren" (siehe Abb. 3. "dboptimierung3.jpg"). Beim Validieren werden die SQL-Scripte ausgeführt.


HINWEISE:
- Ein Bug in Scopeland bringt eine Fehlermeldung von Oracle nur einmal. Um wieder einen zu sehen, muss der DirectDesk neu gestartet werden. Dann wieder "validieren".


Hintergrund-Info: Es sind folgende Tabellen in der DB vorhanden:
TABLE: tentwickler
PRIMARY: Entwickler
Key
FOREIGN: -


TABLE: tproduktmanager
PRIMARY: PManager
Key
FOREIGN: -


TABLE: teintraege
PRIMARY: Eintrag
Key
FOREIGN: FK_VersionKey


TABLE: taktualisierungen
PRIMARY: Aktualierung
Key
FOREIGN: FKVersionKey


TABLE: tversionen
PRIMARY: Version
Key
FOREIGN: FKProduktKey


TABLE: tprodukt
PRIMARY: Produkt
Key
FOREIGN: FKProduktManagerKey


TABLE: tentwcklprodukt (Kreuztabelle)
FOREIGN: FKProduktKey
FOREIGN: FKEntwicklerKey


TABLE: t_versiosystem (unabhängige, eigenständige Tabelle)
PRIMARY: SLKey

Quellcode:  

/* Name der Scopeland-Funktion: a_unique_key2 */
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_eintraege 
ADD CONSTRAINT unique_key2
UNIQUE (Eintrag_Key) 

/* Name der Scopeland-Funktion: b_unique_t_produkt */
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_produkt 
ADD CONSTRAINT unique_t_produkt
UNIQUE (Produkt_Key) 

/* Name der Scopeland-Funktion: c_unique_t_aktualis */
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_aktualisierungen 
ADD CONSTRAINT unique_t_aktualisg
UNIQUE (Aktualierung_Key) 

/* Name der Scopeland-Funktion: d_unique_t_versionen */
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_versionen 
ADD CONSTRAINT unique_t_versionen
UNIQUE (Version_Key) 

/* Name der Scopeland-Funktion: e_unique_t_entwickler */
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_entwickler 
ADD CONSTRAINT unique_t_entwickler
UNIQUE (Entwickler_Key) 

/* Name der Scopeland-Funktion: f_unique_t_p_manager */
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_produktmanager 
ADD CONSTRAINT unique_t_produktmanager
UNIQUE (PManager_Key)

/* Name der Scopeland-Funktion: g_unique_t_versiosystem */
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_versiosystem 
ADD CONSTRAINT unique_t_versiosystem
UNIQUE (SLKey)


/* Name der Scopeland-Funktion: o_DEL_t_eintraege */
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_eintraege
ADD CONSTRAINT DEL_t_eintraege
  FOREIGN KEY (FK_VersionKey)
  REFERENCES $[SCOPELAND.PhysDBName('VERSIO Daten')]t_aktualisierungen (Aktualierung_Key)
  ON DELETE CASCADE
  
/* Name der Scopeland-Funktion: p_DEL_t_aktualisierg */
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_aktualisierungen
ADD CONSTRAINT DEL_t_aktualisierg
  FOREIGN KEY (FK_Version_Key)
  REFERENCES $[SCOPELAND.PhysDBName('VERSIO Daten')]t_versionen (Version_Key)
  ON DELETE CASCADE

/* Name der Scopeland-Funktion: q_DEL_t_versionen */  
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_versionen
ADD CONSTRAINT DEL_t_versionen
  FOREIGN KEY (FK_Produkt_Key)
  REFERENCES $[SCOPELAND.PhysDBName('VERSIO Daten')]t_produkt (Produkt_Key)
  ON DELETE CASCADE
  
/* Name der Scopeland-Funktion: r_DEL_FK_Produkt_Key */    
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_entwckl_produkt
ADD CONSTRAINT DEL_FK_Produkt_Key
  FOREIGN KEY (FK_Produkt_Key)
  REFERENCES $[SCOPELAND.PhysDBName('VERSIO Daten')]t_produkt (Produkt_Key)
  ON DELETE CASCADE
  
/* Name der Scopeland-Funktion: s_DEL_FK_Entwickler_Key */  
ALTER TABLE $[SCOPELAND.PhysDBName('VERSIO Daten')]t_entwckl_produkt
ADD CONSTRAINT DEL_FK_Entwickler_Key
  FOREIGN KEY (FK_Entwickler_Key)
  REFERENCES $[SCOPELAND.PhysDBName('VERSIO Daten')]t_entwickler (Entwickler_Key)
  ON DELETE CASCADE

Anhänge: 3 Dateien

Abb. 1.) "db_optimierung_1.jpg"
Abb. 2.) "db_optimierung_2.jpg"
Abb. 3.) "db_optimierung_3.jpg"