Blog-System
ASCII
- datenbank
Moin!
Also bin gerade dabei, ein eigenes News-Management-System in Form eines Blogs zu programmieren. Soweit klappt da auch alles, nur ich habe ein Problem:
Ich will mir die Möglichkeit offen halten können, News, die ich geschrieben habe, wieder zu löschen. Jeder Beitrag erhält eine Nummer, nennen wir sie mal id. Angenommen ich habe jetzt 5 Beiträge mit den id's 1 bis 5 und will den Beitrag mit der Nummer 2 löschen. Wie mache ich das?
Im Prinzip gibt es zwei Möglichkeiten:
1. Der Eintrag bleibt in der Datenbank bestehen und wird bloß nicht mehr angezeigt.
Diese Methode täte jedoch die Datenbank über die Zeit hin zumüllen, fällt also raus.
2. Der Eintrag wird aus der Datenbank gelöscht. Da gibts nur ein Problem: WAS passiert mit der id? Wenn Nummer 2 plötzlich fehlt, gibt es am Ende Fehler in der Darstellung.
Also: Wie kann ich einen Beitrag aus einem Blog löschen, ohne dass er in der Datenbank bestehen bleibt?
(Ich verwende MySQL und PHP)
Thank You!!!
ASCII
Hi,
Im Prinzip gibt es zwei Möglichkeiten:
- Der Eintrag bleibt in der Datenbank bestehen und wird bloß nicht mehr angezeigt.
Diese Methode täte jedoch die Datenbank über die Zeit hin zumüllen, fällt also raus.
wenn Du meinst, dass Content eine Datenbank zumuellt, hast Du recht. Ansonsten empfehle ich Performanceueberlegungen erst einmal zurueckzustellen bis die wirklich wichtigen Fragen geklaert sind.
- Der Eintrag wird aus der Datenbank gelöscht. Da gibts nur ein Problem: WAS passiert mit der id? Wenn Nummer 2 plötzlich fehlt, gibt es am Ende Fehler in der Darstellung.
So? Du hast also eine Abhaengigkeit geschaffen zwischen der Routine, die einer Datenmenge darstellt und einer fortlaufenden ID. Ist das denn auch richtig? ;-)
Also: Wie kann ich einen Beitrag aus einem Blog löschen, ohne dass er in der Datenbank bestehen bleibt?
Indem Deine Routine, die die Darstellung der Daten (bspw. in HTML) erledigt, keine fortlaufenden IDs erwartet.
Gruss,
Ludger
»» So? Du hast also eine Abhaengigkeit geschaffen zwischen der Routine, die einer Datenmenge darstellt und einer fortlaufenden ID. Ist das denn auch richtig? ;-)
Ich hab mit der Programmierung ja noch net angefangen, nur Vorüberlegungen gemacht und Testscripte gebastelt
Bin nur halt über das Problem mit dem Löschen gestolpert
Indem Deine Routine, die die Darstellung der Daten (bspw. in HTML) erledigt, keine fortlaufenden IDs erwartet.
Was soll sie denn dann erwarten? Der Browser muss doch wissen, in welcher Reihenfolge er die Beiträge darstellen soll...
Wie soll ich dass dann organisieren?
ASCII
Hallo ASCII,
bin auch stark der Meinung, dass du ein konzeptuelles Problem hast.
Indem Deine Routine, die die Darstellung der Daten (bspw. in HTML) erledigt, keine fortlaufenden IDs erwartet.
Was soll sie denn dann erwarten? Der Browser muss doch wissen, in welcher Reihenfolge er die Beiträge darstellen soll...
Wie soll ich dass dann organisieren?
SELECT * FROM <tabelle> ORDER BY id DESC
Gruss aus Luzern,
Daniel
Was soll sie denn dann erwarten? Der Browser muss doch wissen, in welcher Reihenfolge er die Beiträge darstellen soll...
Hast du dir da etwa die Verwendung von for($i=0; $i < $count; $i++) vorgestellt? Wenn ja, dann nimm doch dort foreach zusammen mit einer Sortierung nach dem Erstellungszeitpunkt beim Abfragen der DB.
Hallo,
Angenommen ich habe jetzt 5 Beiträge mit den id's 1 bis 5 und will den Beitrag mit der Nummer 2 löschen. Wie mache ich das?
DELETE FROM tabelle WHERE id = 2
- Der Eintrag wird aus der Datenbank gelöscht. Da gibts nur ein Problem: WAS passiert mit der id?
php-faq: 16.16. Meine IDs haben Lücken - wie vergebe ich sie neu?
Wenn Nummer 2 plötzlich fehlt, gibt es am Ende Fehler in der Darstellung.
dann hast du einen Fehler im Konzept. IDs dienen lediglich dazu Datensätze zu identifizieren - sie haben aber _nichts_ mit der Darstellung oder der Nummerierung zu tun.
Grüße aus Nürnberg
Tobias
Hallo ASCII,
Im Prinzip gibt es zwei Möglichkeiten:
- Der Eintrag bleibt in der Datenbank bestehen und wird bloß nicht mehr angezeigt.
Wenn es Dir wichtig ist, dass es eine bestimmte News mal gab, würde ich diese Lösung bevorzugen.
Diese Methode täte jedoch die Datenbank über die Zeit hin zumüllen, fällt also raus.
Das ist kein Argument. Du kannst natürlich solche, für gelöscht erklärte News von Zeit zu Zeit in ein Archiv verschieben.
Wenn es jedoch völlig unwichtig ist, dass eine News mal existiert hat, dann lösche sie.
Was Deine Numerierung und die IDs betrifft, das wurde Dir schon ausgezeichnet erläutert.
Freundliche Grüsse,
Vinzenz