Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » MobiLink - Serveradministration » MobiLink-Servertechnologie » Synchronisationsmethoden » Eindeutige Primärschlüssel

 

Primärschlüsselpools

Eine effiziente Methode zur Lösung des Problems mit den eindeutigen Primärschlüsseln besteht darin, jedem Datenbankbenutzer einen Pool von Primärschlüsselwerten zuzuweisen, die er bei Bedarf verwenden kann. Sie können zum Beispiel jedem Verkäufer 100 neue Identifizierungswerte zuteilen. Jeder Verkäufer kann Werte aus seinem eigenen Pool frei an neue Kunden vergeben.

 Implementieren eines Primärschlüsselpools
  1. Fügen Sie in der konsolidierten Datenbank und in jeder entfernten Datenbank eine neue Tabelle ein, die den neuen Primärschlüsselpool enthält. Zusätzlich zu einer Spalte für den eindeutigen Wert in der konsolidierten Datenbank müssen diese Tabellen eine Spalte für den Benutzernamen enthalten, der identifiziert, wer das Recht hat, den Wert zuzuweisen.

  2. Schreiben Sie in der konsolidierten Datenbank eine gespeicherte Prozedur, die sicherstellt, dass jedem Benutzer genügend neue Identifizierungswerte zugeordnet sind. Ordnen Sie entfernten Benutzern, die viele neue Einträge einfügen oder nur selten synchronisieren, mehr neue Werte zu.

  3. Schreiben Sie ein download_cursor-Skript, um die neuen Werte auszuwählen, die den einzelnen Benutzern zugeordnet wurden, und sie in die entfernte Datenbank herunterzuladen. Siehe Implementieren zeitstempelbasierter Downloads.

  4. Ändern Sie die Anwendung, die die entfernte Datenbank benutzt, sodass sie einen Wert aus dem Pool verwendet, wenn ein Benutzer eine neue Zeile einfügt. Die Anwendung muss dann den Wert aus dem Pool löschen, damit sie nicht mehrfach benutzt wird.

  5. Schreiben Sie ein upload_delete-Skript, um die gelöschten Schlüssel hochzuladen. Der MobiLink-Server löscht dann Zeilen aus dem konsolidierten Werte-Pool, die der Benutzer in seinem persönlichen Werte-Pool in der entfernten Datenbank gelöscht hat.

  6. Schreiben Sie ein end_upload-Skript, das die gespeicherte Prozedur aufruft, die den Werte-Pool wartet. Dies hat zur Wirkung, dass weitere Werte in den Pool des Benutzers eingefügt werden, um die beim Download gelöschten Werte zu ersetzen.

 Beispiel