[MySQL] Datenbank Reorganisieren

asseskiller

Lt. Junior Grade
Registriert
Sep. 2005
Beiträge
447
Hi,

habe folgendes Problem::freak:
Ich habe eine Warenwirtschaftssystem auf Browserebene mit MySQL entwickelt.:)
Wenn man dort einen Artikel löscht, dann wir der Ganze Datensatz gelöscht. Da ich möchte, das die ID danach aber wieder belegt werden kann müsste ich via UPDATE den Datensatz leeren und jedes mal vorm eintragen eines neuen Artikels abfragen ob irgendwo ein leerer Datensatz ist.
Das dauert ganz schön lange und kostet Performance!:(

Daher wollte ich wissen ob MySQL eine Funktion bereitstellt, die es ermöglicht, automatisch einen neuen Datensatz mit einer gelöschten ID benutzt?
Habe OPTIMIZE TABLE gefunden hat mir aber nicht den gewünschten erfolg gerbracht.:rolleyes:

Hoffe jemand kann mir weiter helfen.

Danke im Vorraus
 
Ehm Scherz oder? Artikel ID sollte niemals wiederverwendet werden. D.h. ein artikel den ich heute verlinke kann morgen schon ein ganz anderer sein?!?

Und nein, hab noch nie von sowas gehört. Macht wie gesagt auch keinen Sinn - warum auch?

nox
 
Macht Sinn, weil das nichts mit Links zu tun hat.
Die Warenwirtschaft ist nicht online nutzbar. Läuft auf nem internen server.
Die sache ist das ein EDV Programm in de rLage sein muss alte ID's neu zu vergeben wenn sie sowieso aus der datenbank gelöscht sind, weil beim Finanzamt zwingend fragen kommen was war denn mit dem artikel der hier gelöscht wurde (rückschluss daraus das da ne Lücke is) usw.
 
Dann lösch den Datensatz nicht Kompelett, sondern setzt den auf Storniert oder so. Dann hasst keine Lücke und das Finanzamt findet keine Unregemäßigkeiten.
 
@asseskiller: das Finanzamt wird nicht wegen einer fehlenden ID nachfragen. Wenn sie nachfragen, dann wegen einer fehlenden Rechnungsnummer, denn diese muss fortlaufend sein.

Grundsätzlich gilt: Lösche NIE einen Artikel oder Kunden. Wenn solche Datensätze gelöscht werden, dann musst du auch gewährleisten, dass alle verweisende Datensätze mit gelöscht werden, da sie sonst keinerlei Bezug haben.
Beispiel: du löschst einen Artikel aus dem Artikelstamm. Nun existieren aber noch Auftragspositionen zu diesem Artikel. Nun fehlt also die Beziehung zwischen dem Artikelstamm und der Auftragsposition.
Lösung: in den betroffenen Tabellen wie Artikelstamm oder Kundenstamm ein Kennzeichen einbauen um einen Artikel oder Kunden zu sperren. Nun musst du lediglich bei jedem bearbeiten/anlegen eines Auftrages auf dieses Kennzeichen eine Abfrage machen. So solltest du auf der sicheren Seite sein.


Gruß
 
Zurück
Oben