Tom: Datenbank-Design

Beitrag lesen

Hello,

Dies hat nur einen Haken: A hat grad die Daten abgefragt und überlegt noch... B hat die gleichen Daten grade bearbeitet und sendet sie während A noch überlegt an die DB. Wie löst man nun den Konflikt auf?

wenn das der einzige haken ist, dann sollte es lösbar sein. es macht ohnehin sinn, die eine beziehungstabelle in zwei aufzuteilen, eine für die aussteller und eine für die besucher.

Den Zugriffskonflikt kann man in einem verbindungslosen Protokoll nicht wirklich lösen, sondern nur mit einer optimistic-locking-Strategie, und da bleibt eignetlich nur "academic locking" (= Conflict-Counter) behandeln. Behandeln heißt, dass einer der Partner im Konfliktfalle nochmal arbeiten muss. Wenn man in einem verbindungsorientierten Protokoll arbeitet, kann man auch mit pessimistic locking arbeiten, was das Bearbeiten der Datensätze füe einen zweiten User unmöglich machen würde, solange der erste daran arbeitet.

Der eindeutige Schlüssel, der gefunden werden soll, besteht aus den drei Teilen A-B-Z

A = Aussteller
B = Besucher
Z = Zeitpunkt (Slotkennung)

wobei zusätzlich die Teilschlüssel

A-B  (B-A)
A-Z
B-Z

eigene Sperrfunktion erhalten.

Es ist also nur ein Datensatz mit A(n)-B(m)-Z(x) möglich
Es ist aber auch nur ein Datensatz mit dem Teilschlüssel

A(n)-B(m)
  A(n)-Z(x)
  B(m)-Z(x)

möglich

Dass ein Aufteilen in zwei oder mehr Tabellen notwendig wäre, kann ich nicht erkennen.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau