Tag-Datenbankstruktur
Verfasst: 06.07.2011 21:07
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
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