Andreas Korthaus: Datenbank: Inkonsistenzabfrage

Beitrag lesen

Hallo!

Stell Dir ein anderes Beispiel vor: Ein Fahrradverleih speichert Fahrräder, Kunden, Ausleihdaten(Datum, Dauer etc.). jetzt will jemand wissen, welche Räder noch frei sind, (also NICHT in der Ausleihtabelle stehen). Willst Du nach jedem Ausleiheintrag etwa eine Tabelle 'freie Räder' aktualisieren?

Ich muß unserem Tiger absolut Recht geben. Wenn Du schon Inkonsistenten bewußt mit einplanst ist irgendwas an Deiner Datenbank nicht ganz richtig!

Jetzt mal auf die Fahrräder bezogen, ich würde mich da zwischen 2 Möglichkeiten entscheiden, kommt drauf an ob Dir die bloße Information ausgeliehen oder nicht reicht. Voraussetzung Du hast in der Tabelle Fahrräder pro Fahrrad einen Datensatz:

Einfach in diese Tabelle ein Feld "Ausgeliehen" Einfügen und dieses beim  vewrlei auf 1 setzen, und bei der Rückgabe auf 0, dann kannst Du recht einfach abfragen "...WHERE ausgeliehen = 0"

Wenn Du aber keine Tabelle hast, in der ein Datensatz pro Fahrrad existiert, oder Du mehr informationen über den Verleih speichern willst, dann mache eine Tabelle "Verleih", und speichere darin alle relevanten Daten(FahrradID, start, ende...), dann kannst Du auch hier recht einfach abfragen, welche Fahrräder noch da sind. Komplizierter wirds wie gesagt, wenn Du die Anzahl der Fahrräder als Zahl in der Tabelle Fahrräder speicherst, dann würde ich mit Group by die Summe der ausgeliehenen Fahrräder über die Tabelle "Verleih" ermitteln, und dann per Left Join mit der vorhandenen Anzahl in "Fahrräder" vergleichen. Aber kommt ganz drauf an wie Du was in deiner DB speicherst, vielleicht mußt Du es ganz anders machen, das kann ich aber anhand Deiner angaben so nicht sagen. Was ich sagen kann ist das man Inkonsistenzen  nicht einplanen _darf_!

Grüße
Andreas

PS: Sorry wegen der vielen Fehler, ich hoffe Du kannst noch grob verstehen was gemeint war!