In dieser Lektion wird davon ausgegangen, dass Sie bereits alle vorherigen Lektionen abgeschlossen haben. Siehe Lektion 1: Planen von Schemata.
In einem Synchronisationssystem ist der Primärschlüssel einer Tabelle die einzige Möglichkeit, eine Zeile in einer anderen Datenbank eindeutig zu identifizieren, und die einzige Möglichkeit, Konflikte zu erkennen. Jede für die mobile Verwendung eingerichtete Tabelle muss einen Primärschlüssel haben. Der Primärschlüssel darf nie geändert werden. Sie müssen außerdem sicherstellen, dass ein in einer Datenbank eingefügter Primärschlüsselwert in keiner weiteren Datenbank eingefügt wird.
Es gibt mehrere Möglichkeiten, eindeutige Primärschlüssel zu generieren. Der Einfachheit halber wird in dieser praktischen Einführung die Methode der zusammengesetzten Primärschlüssel verwendet. Diese Methode erstellt Primärschlüssel mit mehreren Spalten, die in konsolidierten und entfernten Datenbanken eindeutig sind.
Führen Sie an der Eingabeaufforderung folgenden Befehl aus:
sqlplus SYS/your password for sys as SYSDBA |
Werte, die der SALES_REP_ID hinzugefügt werden, müssen in der Tabelle HR.EMPLOYEES vorhanden sein. Der Fremdschlüssel ORDERS_SALES_REP_FK erzwingt diese Regel. Führen Sie die folgende Anweisung zum Löschen der Fremdschlüssel aus:
ALTER TABLE OE.ORDERS DROP CONSTRAINT ORDERS_SALES_REP_FK; |
Die Spalte SALES_REP_ID kann nicht als Primärschlüssel hinzugefügt werden, da sie Nullwerte enthält. Für diese praktische Einführung ersetzen Sie die Nullwerte durch den Wert 1. Führen Sie die folgende Anweisung aus:
UPDATE OE.ORDERS SET SALES_REP_ID = 1 WHERE SALES_REP_ID IS NULL; |
Die Spalte ORDER_ID ist der aktuelle Primärschlüssel der Tabelle ORDERS. Löschen Sie den aktuellen Primärschlüssel mit der folgenden Anweisung:
ALTER TABLE OE.ORDERS DROP PRIMARY KEY CASCADE; |
Der zusammengesetzte Primärschlüssel umfasst die Spalten SALES_REP_ID und ORDER_ID. Fügen Sie den zusammengesetzten Primärschlüssel mit der folgenden Anweisung hinzu:
ALTER TABLE OE.ORDERS ADD CONSTRAINT salesrep_order_pk PRIMARY KEY (sales_rep_id, order_id); |
Nachdem Sie diese Anweisungen ausgeführt haben, stellt der MobiLink-Server eine Verbindung mit der konsolidierten Datenbank her und richtet die Synchronisation für eine beliebige Anzahl entfernter Datenbanken ein.
In einer späteren Lektion wird anhand des konsolidierten Schemas das entfernte Schema erstellt. Das bedeutet, dass das entfernte Schema dieselben Primärschlüssel enthält wie das konsolidierte Schema.
Spalten wurden gezielt ausgewählt, um eindeutige Primärschlüssel für alle Datenbanken sicherzustellen. Für die Tabelle ORDERS besteht der Primärschlüssel aus den Spalten SALES_REP_ID und ORDER_ID. Jeder in die entfernte Vertriebstabelle eingegebene Wert muss eine eindeutige Bestellnummer haben (der Wert SALES_REP_ID ist immer gleich). Dadurch wird die Eindeutigkeit in jeder entfernten ORDERS-Tabelle sichergestellt. Der Primärschlüssel in der konsolidierten ORDERS-Tabelle verhindert Konflikte, wenn mehrere Vertriebsmitarbeiter gleichzeitig Daten hochladen. Jeder Upload eines Vertriebsmitarbeiters ist eindeutig und von den Uploads anderer Vertriebsmitarbeiter unterscheidbar, da ihre SALES_REP_ID-Werte unterschiedlich sind.
Fortfahren mit Lektion 4: Herstellen der Verbindung mit MobiLink.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |