[GastForen Programmierung/Entwicklung PHP und MySQL MySQL: zu Bildern gehörende Tags speichern

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

MySQL: zu Bildern gehörende Tags speichern

Canio
Beiträge gesamt: 174

28. Jan 2009, 13:17
Beitrag # 1 von 7
Bewertung:
(2473 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich möchte in meiner Mini-PHP-Anwendung, dass User Bilder hochladen und verschlagworten können.

Die Bilder selbst speicher ich natürlich nicht in der DB, sondern auf dem Server, trage sie aber in die DB ein. Die Tags können kommasepariert eingetragen werden und können demnach von PHP erkannt werden.

Meine Frage ist jetzt, soll ich die Tags in einer Spalte mitspeichern (also inklusive Kommata), oder wäre eine eigene Tabelle sinnvoller, wobei ich die Tags per PHP isoliere und einzeln eintrage?

Welche Version ist suchfreundlicher?
X

MySQL: zu Bildern gehörende Tags speichern

LMDDRAGON
Beiträge gesamt: 11

29. Jan 2009, 12:40
Beitrag # 2 von 7
Beitrag ID: #383161
Bewertung:
(2447 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

also das, kommt hier mehr oder weniger auf Dich an.

1. Wieviel Wörter kann denn ein Bild bekommen?
(sollten es nur ein paar sein 5-10 und werde sie nicht mehr separiert würde ich sie direkt mit in die Tabelle speichern im Text Format und via "," oder sonstwas getrennt (ich nehme lieber explodezeichen die keiner ausversehen eintragen kann, das erspart einige Suchmuster))

2. Sollen die Wörter später noch ausgewertet oder Statistisch dargestellt werden und vielleicht noch so eine Art Counter/Zähler bekommen dann würde ich diese in einer Separaten Tabelle auflisten und mit einer ID versehen.

Ich hoffe das Hilft Dir weiter. Gruss


als Antwort auf: [#382983]

MySQL: zu Bildern gehörende Tags speichern

Canio
Beiträge gesamt: 174

29. Jan 2009, 14:44
Beitrag # 3 von 7
Beitrag ID: #383194
Bewertung:
(2435 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Die User sollen so viele Tags eingeben können wie sie wollen. D.h. ich muss wohl eine extra Tabelle anlegen.

Mein Problem ist jetzt die Redundanz. Es kann ja durchaus vorkommen, dass 10 User die gleichen Tags eintragen. Das ist doch nicht optimal, wenn in der Tabelle dann auch 10 Zeilen stehen, die sich nur in der ID unterscheiden, nicht aber im Tag selbst.

Wie kann man das denn noch optimieren?


als Antwort auf: [#383161]

MySQL: zu Bildern gehörende Tags speichern

Intermedia
Beiträge gesamt: 1287

29. Jan 2009, 14:52
Beitrag # 4 von 7
Beitrag ID: #383197
Bewertung:
(2432 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

glaub da wirst du 2 Tabellen brauchen, eine für die Keywords und dann eine Tabelle für die Verknüpfung der Bild ID mit der der Keywords.

Damit sind zumindest deine Redudanzen verschwunden.

Gruß Sven


als Antwort auf: [#383194]

MySQL: zu Bildern gehörende Tags speichern

LMDDRAGON
Beiträge gesamt: 11

29. Jan 2009, 16:28
Beitrag # 5 von 7
Beitrag ID: #383226
Bewertung:
(2409 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Da geb ich mal meinem Vorredner Recht,

aber damit bindest Dir 'nen ganz schönes Projekt an's Bein.

Weil Du dann die eingegeben Wörter Abfangen musst und diese mit der DB vergleichen ob sie schon existieren und wenn ja dann automatisch die ID auslesen und zuordnen. Wenn nicht dann eintragen und die autoinc ID übertragen.

Ich habe noch 100 andere Ideen aber ich denke mal Du hast da Deine eigenen Vorstellungen ;)


als Antwort auf: [#383197]

MySQL: zu Bildern gehörende Tags speichern

oesi50
  
Beiträge gesamt: 2315

30. Jan 2009, 20:17
Beitrag # 6 von 7
Beitrag ID: #383436
Bewertung:
(2372 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Halli Canio,

du brauchst 3 Tabellen

Tabelle 1
Tag_id,Tag

Tabelle 2 (Zuordnungstabelle)
User_id,Tag_id

Tabelle 3 (Zuordnungstabelle)
Bild_id,Tag_id

Jetzt kannst du auch die Wertigkeit ermitteln
-- Tags je Bild
SELECT COUNT(*) AS cnt FROM tabelle3 GROUP BY Bild_id ORDER BY cnt DESC
-- Tags je User
SELECT COUNT(*) AS cnt FROM tabelle2 GROUP BY User_id ORDER BY cnt DESC

usw.

mit div. Join kannst du auch noch mehr herausholen.


als Antwort auf: [#383194]
(Dieser Beitrag wurde von oesi50 am 30. Jan 2009, 20:19 geändert)

MySQL: zu Bildern gehörende Tags speichern

Canio
Beiträge gesamt: 174

31. Jan 2009, 18:43
Beitrag # 7 von 7
Beitrag ID: #383478
Bewertung:
(2329 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für die Antworten.

Das mit den drei Tabellen klingt ganz gut, und ich glaub ich versteh's langsam.


als Antwort auf: [#383436]
X