Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#29

Re: SQL In DBGrid markierten Datensatz löschen/ändern

  Alt 17. Apr 2009, 10:03
Hallo,

zuerst zur Tabelle hb_konto:

So wie die aufgebaut ist, ist das korrekt, es sollte einen eindeutigen Index auf KontoID geben, damit diese nicht versehentlich doppelt vergeben werden kann.

Nun zur Tabelle hb_neben:

Sie hat den Fremdschlüssel KontoID auf hb_konto und die eigene, nicht eindeutige ID NKontoID. Die Kombination aus KontoID und NKontoID ist eindeutig. Auf diese Kombination sollte ein eindeutiger Index gelegt werden, damit diese nicht versehentlich doppelt vergeben werden kann.

Prinzipiell ist das so korrekt.

Nun zur Tabelle hb_beschreib:

Sie verfügt über einen Fremdschlüssel auf die Tabelle hb_neben über NKontoID. Dies reicht für die Eindeutigkeit nicht aus, hier sollte zusätzlich der Fremdschlüssel KontoID mit aufgenommen werden, damit die eindeutige Zuordnung zur Tabelle hb_neben über die Kombination aus KontoID und NKontoID erfolgen kann. Damit ist aus Kontensicht eine eindeutige Zuordnung über SQL zwischen den Tabellen möglich.
Damit identische Sätze in der Tabelle hb_beschreib unterschieden werden können, sollte diese Tabelle noch eine Spalte BeschreibID mit eindeutigem Index bekommen. Hier empfiehlt sich ein AutoInc-Feld.

Ansonsten erscheint mir das Design korrekt und Paradox/dBase für diese Aufgabenstellung durchaus ausreichend (auch wenn es ein "altes, nicht mehr zeitgemäßes System ist". Zum Lernen ist es immer noch sehr gut zu gebrauchen.
  Mit Zitat antworten Zitat