Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

Mysql: tool für Datenbankdesign?

hansapark / 6 Antworten / Flachansicht Nickles

hallo .. ..mal wieder ein hilfegesuch

ich habe heute mal versucht mich mit meiner datenbanktabelle auseinanderzusetzen und mich mit dem thema normalform zu befassen..

das mit der normalform habe ich nicht richtig begriffen und frage mich auch ob es nicht ein programm gibt , mit dem man die spalten gut hin und herschieben kann..(?) bei mir sind es ca. 1000 zeilen, und woanders bestimmt noch viel mehr, die kann man doch nicht nur per hand neu schreiben (?)

und vielleicht gibt es ja ein tool dass gleich die probleme meiner tabelle erkennt und anzeigt, da ich mich damit sehr schwer tue..

also falls..
wäre ich für einen tip dankbar

mfg, h.
------------------------------------------------

ps.:

so sieht die tabelle aus:
`id`, `url`, `w1`, `w2`, `w3`, `w4`, `w5`, `w6`, `w7`, `w8`, `w9`, `w10`, `ort`, `jahr`, `typ`

wobei 'w' prinzipiell erweiterbar sein müsste (personen auf einem bild 'url',) ..(und in 'ort', 'jahr', 'typ' und auch 'w' wiederholungen vorkommen)

bei Antwort benachrichtigen
Borlander hansapark „puh.. also das mit dem index lass ich erstmal weg.. das ist noch zu hoch... das...“
Optionen
wieso 2 primärschlüssel. da meckert doch phpmyadmin normalerweise (?)
Nicht zwei Primärschlüssel, sondern einen über beide Felder. Alternativ kannst Du auch ein zusätzliches AutoInc-Feld als Primärschlüssel erstellen. Es bietet sich aber an, das mehrfache anlegen der Verknüpfung zu unterbinden (z.B. das wäre beim Primärschlüssel gewährleistet, der ist automatisch auch ein UNIQUE-Index)

eine ganze spalte rausnehmen kann und woanders wieder einfügen.
Du kannst die Daten doch (relativ einfach) per SQL in die neue Form überführen:
1) Alle Benutzer in die user-tabelle (bei der die Spalte user_name sinnigerweise UNIQUE sein sollte) einfügen
2) Tabelle imageuser füllen
3) Implementierung umstellen
4) die jetzt nicht mehr benötigten spalten entfernen

Gruß
Borlander
bei Antwort benachrichtigen