wahsaga: Ergänzungsfrage zur DB-Struktur

Beitrag lesen

hi,

Ergänzungsfrage zu Datenhaltung, folgende Struktur habe ich mir überlegt:

Tabelle Nachrichten
  Feld ID der Nachricht
  Feld Anzahl der Kommentare

anzahl kommentare hatte ich bei meinem blog anfangs auch direkt an der nachricht gespeichert. erfordert dann natürlich bei jedem neuen kommentareintrag auch ein hochzählen an dieser stelle, also updates in zwei tabellen statt nur einer. wenn du es wirklich genau nehmen willst, kommt dadurch also auch noch eine notwendigkeit für transaktionen ins spiel, denn wenn das eintragen eines neuen kommentars geklappt hat, das updaten der einträge-tabelle aber nicht, hättest du ja einen datenschiefstand.

inzwischen bin ich dann doch lieber dazu übergegangen, die anzahl der kommentare zu einem blogeintrag aus der kommentartabelle selbst zu ermitteln, also bei der abfrage einen entsprechenden JOIN zu machen. wozu bietet eine DB schließlich solche möglichkeiten ...

Tabelle Kommentare
  Feld ID des Kommentars
  Feld ID der bezogenen Nachricht

auf diese spalte habe ich noch einen index gesetzt, der bei oben erwähntem join benutzt werden kann.

Tabelle Autoren
  Feld ID des Autors
  Felder über den Autor (was halt so interessant ist, was meint ihr?)

hm, ich dachte blogeinträge schreiben wolltest nur die selber?
also wäre diese tabelle dann für die kommentarschreiber gedacht - die sich demnach dann auch erstmal registrieren müssten ...?
registrierungszwang zum kommentieren schreckt meistens eher ab, würde ich also drauf verzichten, sofern sich nicht im laufe der zeit herausstellen sollte, dass allzu starker missbrauch mit der kommentarfunktion (spam, beleidigungen, etc.) betrieben wird.

informationen zum jeweiligen autor liegen bei mir mit in der kommentartabelle, also name, homepage, email. braucht man sonst noch was? ich denke nicht, viel mehr wäre overkill.
darüber hinaus neigen "meine" kommentierer dazu, nicht immer den selben namen, homepage etc. anzugeben, sondern bspw. manchmal einen ironisch gemeinten namen mit bezug auf den aktuellen blogeintrag zu wählen (obwohl die person natürlich die selbe ist). was würdest du dann machen - einen _neuen_ autor dafür in deiner tabelle anlegen?

Tabelle Inhalt
  Feld ID der Nachricht oder des Kommentars
  Feld Inhalt

ich habe blogeinträge und kommentare direkt in ihren jeweiligen tabellen gespeichert, weil ihre struktur doch unterschiedlich ist.
blogeinträge haben nur überschrift und text, sowie noch das datum - autor bin immer ich *g*, also muss der nicht gesondert vermerkt werden.
ggf. käme hier noch eine kategorie-ID hinzu (sofern man denn seine blogeinträge in verschiedene solche aufteilen will - für mein blog sehe ich keinen nutzen darin) - auch wieder ein merkmal, dass die kommentare eigentlich nicht haben.

die kommentare haben dann blogeintrags-ID, autorname, -homepage, -email sowie text und datum.

Die IDs der Nachrichten und Kommentare würde ich aus dem aktuellen Datum und der aktuellen Zeit generieren, sodass mir über diesen Weg diese Informationen ohne ein weiteres Datenfeld zur Verfügung stünden.

würde ich leicht unsauber finden, zwei kommentare zum exakt selben zeitpunkt wären ja zumindest theoretisch denkbar.
da nutze ich doch lieber eine einfache auto_increment-ID-spalte, und lege das datum seperat ab.

tipp zum speichern des datums: einen der von mysql bereitgestellten datumstypen zu nutzen, wäre sicher vorteilhaft - erleichtert nachher die sortierung bzw. auswahl bspw. nach monaten für's archiv.

Scheint euch das ein gangbarer Weg oder habe ich bei o.g. Struktur irgendwo Denk- bzw. Konzeptfehler drin?

dein weg wäre m.E. durchaus gangbar, auch wenn meiner wie beschrieben davon abweicht.
könnte allerdings auch durchaus eine geschmacksfrage sein ...

gruß,
wahsaga

--
"Look, that's why there's rules, understand? So that you _think_ before you break 'em."
0 50

Welche Features sollte ein Webblog haben?

Siechfred
  • meinung
  1. -1
    Bio
    1. 0
      Ludger
      1. 0
        Bio
    2. 0
      Jörg Peschke
      1. 0
        Bio
        1. 0
          Jörg Peschke
          1. 0
            Bio
            1. 0
              Ludger
              1. 0
                Bio
                1. 0
                  Ludger
                  1. 0
                    Bio
                    1. 0
                      Ludger
                      1. 0
                        Bio
                        1. 0
                          Ludger
                          1. 0
                            Bio
                            1. 0
                              Ludger
    3. 0
      Siechfred
  2. 1
    Ludger
    1. 0
      Siechfred
  3. 1
    Schuer
    1. 0
      Siechfred
  4. 1
    wahsaga
    1. 0
      Siechfred
      1. 0
        wahsaga
        1. 0
          Siechfred
          1. 0
            Jeena Paradies
            1. 0
              wahsaga
          2. 0
            wahsaga
  5. 0

    Ergänzungsfrage zur DB-Struktur

    Siechfred
    1. 0
      wahsaga
      1. 0
        Siechfred
        1. 0
          wahsaga
    2. 0
      Jeena Paradies
      1. 0
        Jeena Paradies
      2. 0
        Ludger
        1. 0
          Jeena Paradies
          1. 0
            Ludger
      3. 0
        Siechfred
    3. 0
      Ludger
      1. 0
        wahsaga
        1. 0
          Ludger
      2. 0
        Siechfred
        1. 0
          Ludger
  6. 0
    Jeena Paradies
    1. 0
      wahsaga
  7. 1

    Welche Features könnte ein Weblog haben?

    Tim Tepaße
    1. 0
      Siechfred
    2. 0
      Jeena Paradies
  8. 0

    Danke

    Siechfred