Seite 1 von 1

Tag-Datenbankstruktur

Verfasst: 06.07.2011 21:07
von Unimatrix_0
Hi,

ich "missbrauche" phpBB um noch andere Inhalte als Forenbeiträge zu speichern und möchte diese von den Nutzern mit Stichwörtern, also Tags einordnen lassen. Dabei stehe ich vor dem Problem das ich zum einen erreichen möchte das kein Nutzer einen Inhalt doppelt mit dem gleichen Tag versehen kann, jedoch andere Nutzer den Tag auch zuordnen können.
Also User1 darf Content1 nur einmal mit "ACB" taggen, kann aber gerne noch "123", ... taggen. User2 "stimmt" dem Stichwort zu und taggt das ganze auch als "ABC". Für einen ContentX können wieder die gleichen Tags verwendet werden.
Das wäre soweit ja noch kein Problem, nun möchte ich jedoch eine Sortierung/Kategorisierung gemäß den Tags realisieren - je mehr Tags "ABC" Content1 hat - umso wahrscheinlicher ist es das der Tag passt, desweiteren sollen wie bei solchen Systemen üblich beliebte Tags größer als kleiner dargestellt werden etc. und an der Stelle habe ich "Angst" das es bei einer simplen Tabellenstruktur à la "User_ID - Content_ID - Tag" die Abfrage welcher Inhalte welche Tags wie oft hat recht "teuer" wird in der Rechenzeit und somit die Seiten teilweise zu extremen Ladezeiten kommen würden.
Wenn ich dann zB eine Tabelle noch hinzunehme die nur "Coneten_ID - Tag - Counter" enthält zum zählen um die Arbeitszeit zu reduzieren befürchte ich eine kleine Explosion der Datenbankgröße mit der Zeit. Daher bin ich mit beiden Ideen irgendwie nicht ganz so glücklich.

Gibt es eine geschicktere Datenbankstruktur für das Problem, welches dennoch alle Wünsche erfüllt?

Anmerkung: Zusätzliche Inhalte im Moment: 20718 + ca. 35 pro Tag

Re: Tag-Datenbankstruktur

Verfasst: 06.07.2011 21:22
von Pyramide
Unimatrix_0 hat geschrieben:Gibt es eine geschicktere Datenbankstruktur für das Problem, welches dennoch alle Wünsche erfüllt?
Ja, die nennt sich Index. Wenn du z.B. häufig abfragst, welche Tags und wieviele davon ein Artikel hat, dann würde ein Index (artikel,tag) die Abfrage beschleunigen.

http://de.wikipedia.org/wiki/Datenbankindex