![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
Hallo, Ich möchte auf meiner Seite Tags einsetzen...also hier den Web 2.0 Krempl. Nur ohne Effekthascherei, etc. So das ich auf meiner Page so ne kuhle Tag Cloud anzeigen kann. Derzeit habe ich verschiedene Arten von Texte in unterschiedliche DB Tabellen gespeichert. Folglich kann ich nicht einfach so eine Auflösungstabelle erstellen die die Tags den jeweiligen Texten zuordnet da es ja unterschiedliche Inhaltstabellen sind wo sich natürlich auch die IDs überschneiden. Zur Not könnte man noch nen Wert einbauen der die einzelnen Text Typen nochmals unterscheidet. Aber so eine Tabelle zum Auflösen der Text <-> Tag Beziehung wäre j irre riesig. Allerdings werden dadurch die Tags zentral gespeichert, was auch nicht verkehrt ist falls verschiedene Autoren untersch. Schreibweisen für Tags benutzen würden könnte man dem vorbeugen. Was ich mir vielleicht gedacht hatte. Ich speichere die Tags Zentral in einer Tabelle und jeder Text bekommt ne Spalte wo unnormalisiert etwa sowas drinsteht: 64;3;12;74;43;7;53;23 Diese Zahlen geben die jeweilgen Tags wieder. Die Namen der Tags könnte man ja glaube ich nach einem explode(), etc. mit dem passenden Query auf einen Schlag rausholen. Die Möglichkeit die Autoren die Tags selber eintragen zu lassen einfach in eine Spalte unnormalisiert zu speichern, etwa: gelb, obst, sauer, lustig, ... is wohl die schlechteste Möglichkeit um im nachhinein mit den Tags was zu machen. Habt ihr noch ein paar Tips wie man was mit Tags machen könnte? |
| | |
| | Nach oben #2 |
| Johannes Müller Registriert seit: 15.09.2005 Ort: Königreich Flieden
Beiträge: 519
|
naja das taggen von einträgen sollte schon im klartext möglich sein, aber beim eintragen in die datenbank müssen die tags dann in die enstrprechenden ids umgeändert werden. eine eigene tag_relation tabelle wird natürlich richtig groß, hat aber den vorteil, dass man schnell alle einträge mit einem bestimmten tag rausfinden kann. und auch das finden von ähnlichen einträgen (also ähnlichen tags) ist damit auch schneller. welche variante du jetzt verwenden solltest hängt aber auch davon ab, was du mit den tags alles machen willst, und was deine seite so alles enthält.
__________________ Weißt Bescheid - Scheiß wie weit |
| | |
| | Nach oben #3 | |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
| Zitat:
Letztendlich wollte ich mit den Tags das übliche machen. Also zu jedem Text die jeweiligen Tags anzeigen bzw. ne TagCloud draußen machen. Dann vielleicht noch ne gruppierte Tag Cloud nach den Textarten und eine große für die Hauptseite. | |
| | |
| | Nach oben #4 |
| Johannes Müller Registriert seit: 15.09.2005 Ort: Königreich Flieden
Beiträge: 519
|
für diese anwendung reicht es allerdings, die tag-ids als array bei den einträgen zu speichern. um die erstellung der tag clouds zu verbessern, solltest du für jedes tag auch die anzahl der einträge in einem extra feld speichern. also wenn ein neuer eintrag mit einem keyword erstellt wird, den zähler hochzählen, wenn einer gelöscht wird, runterzählen. dann muss für die erstellung einer tag cloud nicht die kompletten eintrags-tabellen durchsuchtwerden, wie oft eine id in der auflistung vorkommt.
__________________ Weißt Bescheid - Scheiß wie weit |
| | |
| | Nach oben #5 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
|
Hallo, ich krame diesen Thread nochmal aus den Tiefen dieses Forums heraus, da ich derzeit überlege, wie ich das Problem der Tag-Vergabe und Speicherung innerhalb der Datenbank am besten umsetze. Die tagcloud, die ich haben möchte ist eine Standardvariante, die man häufig in Weblogs vorfindet. Das reicht mir für den Anfang. Ich habe nun etwas im Internet gesucht und bin zum Beispiel auf dieses Datenbankmodell gestoßen. [1] Es wird ja sicherlich schon irgendwer mal Gedanken zu diesem Thema "verschwendet" haben. Aus diesem Grund frage ich auch nochmals an dieser Stelle nach, um eventuelle Verbesserungsvorschläge, Ideen zur Datenspeicherung und auch zur Datenverarbeitung zu erhalten. Wenn mir dort jemand ein Feedback zu der verlinkten DB-Struktur geben könnte, wäre das perfekt. [1] Ralf Eggert, Zend Framework Tutorial Teil 4: MVC Design Pattern und Zend_Db |
| | |
| | Nach oben #8 | |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
| Gut. Danke. Es dauert bei mir noch etwas bis ich an die eigentliche Implementierung gelange, demnach ist hier noch etwas Zeit, um Antworten zu schreiben. Werde hier regelmäßig wieder reinschauen. Zitat:
Ich hätte diese Spalte nicht mit einbezogen, sondern eventuell pro Tag noch eine Art Zähler mitlaufen lassen, so dass man nicht beim Auslesen erst berechnen muss, wie häufig ein tag vergeben wurde, sondern dass die Datensätze beim Neueintrag eines Datensatzes direkt auf den aktuellen Stand gebracht werden. | |
| | |
| | Nach oben #9 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
|
Naja tag_path ist eine Implementierung um eine saubere Url zu haben, wenn der Tag beispielsweise Dönertier ist, will ich das ö nicht drinhaben, sondern stattdessen z.b. oe, je nach Backend gibt es da jetzt 2 Möglichkeiten, eine wäre, eine Funktion die mir automatisch aus dem Tagnamen eine schöne passende Variante für die Url macht (umlaute, sondernzeichen etc entfernen bzw. umsetzen (ä = ae ... etc), n lowercase umwandeln, ... ) macht oder eben einen der vom User selbst eingegeben wird und der landet dann beispielsweise in dem Feld. Und da diese Umwandlung nicht 1:1 rückgängig machbar ist, braucht man das eben als weiteren Wert. |
| | |
| | Nach oben #11 |
| Johannes Müller Registriert seit: 15.09.2005 Ort: Königreich Flieden
Beiträge: 519
|
achso, danke benjamin. also das is quasi wie der "post slug" in wordpress. halte ich nicht für nötig, solange man größtenteils ascii-zeichen verwendet (bei asiatischen schriftzeichen wäre dass natürlich was anderes... *gg*) kann man das auch durch einfache ersetzungen machen (Umlaute umschreiben, Sonderzeichen rauslöschen oder durch Bindestrich ersetzen etc.)
__________________ Weißt Bescheid - Scheiß wie weit |
| | |
| | Nach oben #12 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.212
|
@Johannes: deine Aussage wiederspricht aber:
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #13 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
|
Habe jetzt gerade mal auf Basis der oben verlinkten Grafik angefangen mir ein paar Gedanken zu machen und ich glaube, dass das noch ganz interessant wird. Gerade im Bereich der Zuweisung von tags zu Artikeln bzw. der Abgleichung von tags, mit schon in der Datenbank vorhandenen. Wirklich interessant. Freu ich mich schon drauf dieses Problem anzugehen. |
| | |
| | Nach oben #14 | |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
| Zitat:
| |
| | |
| | Nach oben #15 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
|
Klar. Man muss halt auch schauen, wie man dem User das am besten anbietet, damit zwar neue tags hinzukommen können, aber dennoch auch bestehende verwendet werden können. Altbekanntes Beispiel: Web 2.0, Web2.0, web 2.0, ... das muss ja irgendwie auf einen Nenner gebracht werden. Ist alles kein Hexenwerk, muss aber in meinen Augen gut bedacht sein, damit man sich da nicht verzettelt. |
| | |
| | Nach oben #16 | |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
| Zitat:
Version 1) -> User schaltet Brain 1.0 ein und weis zumindest etwas was er schon für Tags verwendet hat Version 2) -> User bekommt Unterstützung von Web 2.0 durch Ajax, das so wie es bei erstellen von Bookmarks bei beispielsweise del.icio.us passiert, beim Tippen Vorschläge aus der DB für seine Tags bekommt, das ganze sollte halt wie dort auch so implementiert sein, dass es nach jeder (fast) Leerstelle wieder neu anfängt, das fast, weil man ja eventuell Tags aus 2 Wörtern auch erstellen will, das ist möglich z.b. mit Anführungszeichen oder der etwas unschönere Weg, den Bindestrich zwischen den Worten nutzen und ihn dann bei der Ausgabe entfernen, geht halt nur wenn man keine Tags mit - im Namen später braucht und ist zugegeben der faulere und einfachere Weg (den ich aktuell gegangen bin | |
| | |
| | Nach oben #17 | |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
| Zitat:
Ich würde auch zu Version 2, so wie du sie vorstellst, tendieren. Wobei das mit den tags mit mehreren Wörtern wohl am einfachsten durch einen Trenner, z.B. dem Komma, realisiert werden könnte. | |
| | |
| | Nach oben #18 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
|
Die Idee mit , (Komma) als Trennzeichen ... phänomenal, gerade zu Nobelpreisverdächtig ... warum ich da ned selbst drauf gekommen bin, dann kann man weiterhin ganz einfach den - (Bindestrich) nutzen wenn man will und kann ohne nen regex oder ähnliches die Tags in ein Feld eingeben und mittels explode auf ein leerzeichen trennen. Mega Supi Toll Danke |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Unterschied zwischen Kategorisierung (mehrfach) und tagging | Ben | Anwendungsdesign / Softwarearchitektur | 16 | 16.11.2007 01:39 |