Horst: Frage zur Normalisierung

Beitrag lesen

Hallo,

Meine Tabelle sieht so aus:
word varchar, links text

Wie jetzt? Ein Feld namens "word" für Stichworte, ein weiteres namens "links" für URLs und ein drittes Feld namens "text" mit folgenden Inhalten:

text ist
url_1 = title_1
url_2 = title_2

usw. Den Text kann ich ja im Script parsen...

Meist du es so?

Nein, es sind nur zwei Felder: word, text

im Textfeld steht
url1=title2
url2=title3

usw. passend zum Schlagword im word-Feld.

Wenn ja, dann taugt das nicht viel, und meine Antwort auf

Sollte ich besser zwei tabellen machen?

table words hat dann nur ein Feld: word (primkey)
table links hat dann drei Felder: wordref(foreignkey), url, title

wäre "eher drei":

  • Eine, die nur Stichworte enthält, ohne Redundanz
  • Eine, die nur URLs enthält, ohne Redundanz
  • Eine, die nur titles enthält, ohne Redundanz

Wenn aber eine URL nicht mehrere titles haben kann, oder ein title nicht mehrere URLs, dann kannst du URLs und titles in derselben Tabelle halten, dann aber in separaten Feldern.

Ok, das ist der Fall.

words hat ein Feld: word (primary key)
anton
berta

links hat drei Felder: word, url, title
anton, freund.html, Über Anton, meinen Freund
berta, freundin.html, Über Berta, meine Freundin
anton, alphabet.html, Das Buchstabieralphabet
berta, alphabet.html, Das Buchstabieralphabet

links.word als foreign key von words.word, ansonsten hat die Tabelle links keinen primary key, jedoch einen Index auf links.word wegen der Performance.

Also doch zwei Tabellen?
Hotte