Wie organiesiere ich eine Datenbank am besten?

E

ernii

Hi
das ist zwar eher grundsätzlich als auf MySql bezogen aber ich pack es trotzdem mal in diese Kategorie da ich die Datenbank ja doch mit MySql betreiben möchte.
Also folgendes:
Es soll eine Linkdatenbank werden und eine Tabelle mit so grob den Spalten "Name, Url, alternativ Url, Sprache, Beschreibung" und was mir einwenig sorgen mach "Stichworte" enthalten.
In "Stichworte" sollen halt verschiedene Stichworte rein, und nun Frage ich mich wie ich das am geschicktesten Organisiere.
Ich könnte in der Spalte Stichwörter eine Aufzählung der Stichworte machen, aber da die meisten Stichworte natürlich sehr häufig verwendet werden erscheint mir das einwenig Unangebracht.
Vielleicht ist es besser immer für jedes Stichwort eine extra Spalte, mit so was wie einem true/false Eintrag, zu machen. Aber wie krieg ich bei so einer Methode hin das ganze noch rechtflexibel zu halten?
Es kommt bestimmt relativ schnell vor das einem neue Stichworte einfallen oder man ein Stichwort durch zweiverschiedene ersetzen möchte um genauer zu unterscheiden.
Das ist das erstemal das ich mir Gedanken über eine Datenbank mache, vielleicht kann mir ja jemand der einwenig Erfahrung auf dem Gebiet hat sagen auf was noch zu achten ist.

cu
ernii
 
Hat den niemand hier erfahrung mit sowas?

Oder ist euch die Frage nur zu leicht?
Versteht ihr mein Problem nicht?
Oder habt ihr wirklich keine Ahnung?
 
Hi ! Du solltest Dir sehr genaue Gedanken über die Struktur Deiner Datenbank machen, da es sonst zu sogenannten Anomalien kommen kann. Deine DB sollte sich mindestens in der 3.Normalform befinden. Dieses jetzt aber hier zu erklären würde den Rahmen sprengen.
THOR(sten)
 
3. Normalform?
Ich versteh nur Bahnhof, hast du irgendwelche Links zu dem Thema?
cu und thx
ernii
 
Hehe, lass dich nicht verunsichern...

Ich würde das ganze eher mit einer Spalte für die Stichworte machen. Die MySQL kann nach Substrings suchen, also das wäre kein Problem. Dann stellen sich auch keine Probleme wegen Austauschen von Stichworten.

Für jedes Stichwort eine eigene Spalte zu definieren wäre IMHO völliger Blödsinn. Wäre auch nicht handlebar...

Gruss
Alki
 
Als Link könnte http://www2.rent-a-database.de/mysql/mysql-26.html eine gute Startadresse sein. Ist übrigens das MySQL Handbuch. Und, btw, mit verunsichern hat das nix zu tun. Jeder nur halb seriöse Datenbankentwickler macht sich Gedanken über den Entwurf der DB. Hier kann man sehr viele Fehler machen!!
THOR(sten)
 
Also....
ist eigentlich ganz einfach:
3. Normalform heist alle Werte nur einmal, plus funktionale verknüpfung aller Primaerschluessel. Am einfachsten machst du dir also eine Art ID feld und machst dir dann auf sinnvolle Art Tabellen mit Beziehungen 1:n, n:1 oder n:n.

Wenn ich zum Beispiel eine Bücherdatenbank anlege, mache ich mir eine Tabelle Author, mit einem Feld "Author_id" und einem Feld "Name".
Sinn der Sache ist es dass ich jetzt zuim Buchtitel mir nur einen Integer speichern muss und damit einfach Platz spare. Die Tabelle Buch sieht dann zb so aus:

Create Table Buch (Titel Varchar(50), Author_id int(4));

Author so:

Create Table Author (Author_id int(4), Name Varchar(50));


Wenn ich Jetzt also den Author mit dem Buch rausquerien möchte muss ich so querien:

Mysql_query ("Select buch.Titel, Author.Name FROM
buch, Author Where
Buch.Titel="Nightshift"
AND Buch.Author_ID=Author.Author_id")

Hoffe geholfen zu haben :)

BigOne
 
Zurück