phpbar.de logo

Mailinglisten-Archive

DB-Design für Schlagworte
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DB-Design für Schlagworte



Hi alle,

ich schreibe derzeit an einem News-System und frage mich, wie ich einen
Schlagwortkatalog am sinvollsten in eine DB-Struktur bringe.
Jeder News-Artikel kann logischerweise mehrere Schlagworte haben,
unbestimmter Anzahl, daher ist es wohl wenig sinnvoll, dafür eine bestimmte
Anzahl Felder vorzusehen.
Drei Alternativen schweben mir vor:

1. eine eigene Tabelle für Schlagworte. Jedes Schlagwort bekommt seine
eigene ID, und die ID des News-Artikels wird dort abegelegt. Wird ein
Schlagwort in einem weiteren Artikel benutzt, so wird ein neuer Eintrag
angelegt - d.h. bei nur einer News pro Tag mit durchschnittlich 10
Schlagwirten habe ich in der Tabelle nach einem Jahr 3650 Einträge - :(

2. Die Tabelle wie oben beschrieben, aber jedes Schlagwort wird nur einmal
in der tabelle anegelegt, und ALLE NewsIDs in einem TEXT-Feld
hintereinandergeschrieben. Ist zwar schnell, wenn man nur nach Schlagwörtern
sucht, aber wenn ich für den Admininistrator die Schlagworte zum Ändern
wieder raussuchen muss, muss ich alle Einträge nach eben der einen NewsID
durchsuchen, die er gerade bearbeitet - scheint mit nicht so effektiv zu
sein...

3. Die Schlagwörter werden direkt bei den News abgespeichert, ebenfalls in
einem TEXT-Feld hintereinander gehängt. Dann habe ich zwar für den
Administrator die Sachen schnell zusammen, aber für die user-Suche muss ich
erst alle Artikel durchkämmen.

Am flexibelsten ist wohl Lösung 1, oder?
Aber ist sie auch sinnvoll, oder wird die Tabelle auf Daduer nicht zu gross?
Wie machen denn sowas die Profis? ;-)

Besten Dank

Helge


********************************
http://www.virtual-tennis-tour.de
Das Online-Tennis-Managerspiel
********************************

---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive