Seite 1 von 1

Lücken nach gelöschten Filmen eliminieren.

Verfasst: Sa 26. Jul 2008, 16:00
von Massafaka
Folgendes Problem: Ich lösche den Film mit der Nummer 228, bei über 400 Filmen in der DB. Wenn ich nun einen neuen Film einfüge kommt dieser an die Stelle 228, statt hinten angereiht zu werden, weil da eben eine Lücke vorliegt. Wie kann ich diese Lücke nach dem Löschen von Filmen schließen, also alle Filme einfach aufrücken? Gibt ja sicher einen einfachen SQL-Befehl dafür. Die Frage ist, ob es dann eh nicht zu Inkonsistenzen kommt.

Re: Lücken nach gelöschten Filmen eliminieren.

Verfasst: Mi 30. Jul 2008, 12:59
von Lifestyle
Massafaka hat geschrieben:Die Frage ist, ob es dann eh nicht zu Inkonsistenzen kommt.
Es wird zu keinen Inkonsistenzen kommen, wenn das Skript dafür ordentlich programmiert wird.

Aber mal ganz im Ernst, wozu brauchst du das ?? Schalte doch notfalls einfach die Option 'Freie Id suchen' aus dann werden alle Filme weiterhin ans Ende eingefügt und es bleiben halt Lücken.

Ich sehe da keinen tieferen Sinn, alle IDs zu verschieben wegen des Einfügen eines Filmes.
Zu mal das je nach DB Größe viel Aufwand verursacht !!

Re: Lücken nach gelöschten Filmen eliminieren.

Verfasst: Fr 1. Aug 2008, 15:24
von Massafaka
Ich brauche das, damit es mit der Excel-Liste übereinstimmt. Dort haben die Filme auch eine ID, und diese sollte keine Lücken aufweisen und die Nummer der letzten DVD immer der Gesamtanzahl der DVDs entsprechen. Gibt es da einen Befehl die Lücken zu schließen? Händisch dauert das viel zu lange und die Nerven gehen den Bach runter. :wink:

Re: Lücken nach gelöschten Filmen eliminieren.

Verfasst: So 3. Aug 2008, 23:31
von Lifestyle
erkläre mal bitte genau was du genau mit dem ganzen kram bezweckst.

Für was ist die Excelliste da und wie verwendest du sie, dass dort keinen Lücken vorhandein sein dürfen.

Re: Lücken nach gelöschten Filmen eliminieren.

Verfasst: Mo 4. Aug 2008, 01:12
von Massafaka
Ist ja ganz einfach. :mrgreen:
In der Excel-Liste gibt es folgende Spalten... Nr. Titel Regisseur Jahr Label Edition Land RC Bildformat Laufzeit usw.
D.h. jede DVD hat eine laufende Nummer und wenn ich jetzt eine neue DVD kaufe, dann wird die als letzte als z.B. Nr. 408 angereiht. Die nächste darauffolgende bekommt die Nr. 409 usw. D.h. ich habe dann insgesamt 409 DVDs in der Sammlung und 409 Einträge(Zeilen) in der Excel-Liste. Natürlich sollten in der Filmsammlung und der Excel-Liste die Indizes übereinstimmen. Und da das schon öfter vorkommt, dass ich einen Film verkaufe, habe ich irgendwann eine DVD mit der Nummer 500 eingetragen aber insgesamt 50 Lücken (=verkaufte und daher gelöschte DVDs) irgendwo dazwischen und somit nur 450 DVDs in der Sammlung. Ist ja ziemlich blöd, wenn dann die Indizes nicht mehr durchlaufend von 1-450 (oder so) gehen sondern komplett durchlöchert sind, weil eben viele DVDs verkauft/gelöscht wurden.

Re: Lücken nach gelöschten Filmen eliminieren.

Verfasst: Mo 4. Aug 2008, 08:46
von der-domi
Tach!

Die Lösung ist auch ganz einfach: Lösche die Excelliste und verwende nur die Filmverwaltung, oder andersrum!
Zwei "Datenbanken" zu verwenden widerspricht sich nämlich.

PS: Mit der Filmverwaltung hast du immer konsistente FilmIDs. Egal was du machst.

Re: Lücken nach gelöschten Filmen eliminieren.

Verfasst: Mo 4. Aug 2008, 11:01
von Massafaka
So einfach ist das leider nicht. Die Filmverwaltung hat ihre Vorteile (online, Cover importierbar, usw) und die Exce-Liste auch (Übersichtlichkeit, kompakter, flexibler). Meine Frage wurde aber immer noch nicht beantwortet: Ist es möglich die Lücken automatisch zu schließen, oder eben nicht? Ich hätte schon gedacht, dass es da einen simplen PHP-Befehl gibt.

Re: Lücken nach gelöschten Filmen eliminieren.

Verfasst: Mo 4. Aug 2008, 11:13
von der-domi
Es widerspricht jeglichen Datenbank-Richtlinien die ID im Nachhinein wegen Lücken zu ändern. Deshalb ist es nicht möglich. Mit viel Aufwand ist so etwas natürlich immer möglich.

Verwende doch einfach den CSV-Export für eine immer aktuelle Excelliste!

Re: Lücken nach gelöschten Filmen eliminieren.

Verfasst: Do 7. Aug 2008, 16:07
von Lifestyle
Massafaka hat geschrieben:Meine Frage wurde aber immer noch nicht beantwortet: Ist es möglich die Lücken automatisch zu schließen, oder eben nicht? Ich hätte schon gedacht, dass es da einen simplen PHP-Befehl gibt.
Eigentlich wurde genau diese Frage ganz zu Anfang beantwortet. Es ist hier kein Problem seitens PHP sonder mysql.

Die FilmID ist die zentrale Verknüpfung für Schauspieler, Bewertungen, Regisseure, Tonformate, Sprache, Genre, Reservierungen, DiskIDs, Verleihvorgänge.....

Eine Änderung der ID bedeutet also eine Änderungen in allen weiteren Tabellen. Wenn überhaupt würde ich sowas über eine Stored Procedure lösen, die derartige Dinge über Nacht ändert, damit keine User davon betroffen sind.
Eventuell noch einen Cronjob,.....

Aber schön wäre das nicht,......