kostenloser Webspace werbefrei: lima-city


Datenbankkonzept

lima-cityForumProgrammiersprachenSonstige Programmiersprachen

  1. Autor dieses Themas

    pantherstyle

    pantherstyle hat kostenlosen Webspace.

    Hi,
    ich arbeite zur Zeit teils aus Spaß und teils zur Übung mit Datenbanken um einen Blog / Artikelarchiv / Gästebuch etc selbst zu bauen. Hierbei stehe ich nun gerade vor dem Problem eine Datenbank so einzurichten, dass sie die Daten betreffs der Blogeinträge, Erstellungsdatum, Änderungsdaten, Autor / -ren, etc. verwaltet. Hierbei würde ich das evtl. so verschachteln, dass die Nutzerkommentare eine Extratabelle bilden, deren referenz auf den Artikel gelegt wird. Leider habe ich keinen rechten Ansatz wie ich das am gescheitesten aufbaue.

    Es wäre nett, wenn mir hier Jemand eine "gute" anfängergeeignete Vorgehensweise aufzeigen könnte. Eventuell fallen ja dem einen oder Anderen noch zusätzliche relevante Daten ein die man für so einen Blog / Archiv etc benötigen könnte außer den genannten.

    Beste Grüße und Dank im Voraus!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. In der Tabelle mit den Kommentaren erstellst du eine Spalte, die die ID des Eintrags, der kommentiert wurde, speichert. Will der User diesen Eintrag, der kommentiert wurde, sehen, dann rufst du diesen aus der einen Tabelle ab und suchst danach nach Kommentaren zu diesem Eintrag, indem du im zweiten Query, das du auf die Kommentar-Tabelle anwendest, mit Hilfe von WHERE nur Kommentare anzeigst, die auch zu dem Eintrag erstellt worden sind.
  4. Autor dieses Themas

    pantherstyle

    pantherstyle hat kostenlosen Webspace.

    Wie würden sich denn die Zugriffszeiten verhalte, wenn ich alle Kommentare in einer einzelnen sehr großen Tabelle speichern würde und nur per ID unterscheide? Wenn ich bei 100 Artikeln je 1000 Kommentare hätte währen ja in einer Tabelle bereits 100.000 Datensätze (hypotetisch) wie schnell oder langsam währe denn hier ein Datensatz gefunden? Währe es evtl günstiger je Artikel eine Tabelle mit Kommentaren anzulegen?

    PS. Danke bis hier hin!
  5. Hallo pantherstyle,

    für jeden Artikel eine Tabelle anzulegen würde ich lieber lassen. Heutige Datenbanken müssen mit Millionen von Datensätzen klarkommen und haben entsprechend gute Suchalgorithmen, dass das alles auch relativ zügig geht, wenn man es richtig macht.
    Ich schlage jetzt mal folgendes vor:
    articles:
    id                 Long Integer, Serial, Primary Key
    id_user            Long Integer, Foreign Key(users.id), Not Null
    creation_date      Date, Not Null
    title              Varchar(50), Not Null
    text               Text, Not Null
    
    comments:
    id                 Long Integer, Serial, Primary Key
    id_article         Long Integer, Foreign Key(articles.id), Not Null
    id_user            Long Integer, Foreign Key(users.id), Not Null
    creation_date      Date, Not Null
    text               Text, Not Null
    Um die Sache schneller zu machen solltest Du noch Indizes für (articles.id, articles.id_user) und (comments.id, comments.id_article, comments.id_user) erstellen. Falls Du Artikel/Kommentare anhand des Datums Filtern willst, dann solltest Du auch die Datumsfelder indizieren.
  6. Genau auf solche Vorgehensweisen sind Datenbanken ausgelegt. Diese Methode wird die geringste Trägheit nach sich ziehen.
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!