Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Mysql: tool für Datenbankdesign?

hansapark / 6 Antworten / Baumansicht 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 „Mysql: tool für Datenbankdesign?“
Optionen

Mir ist da kein entsprechendes Tool bekannt. Zumal sich das ganze auch nur bedingt automatisieren lässt. Woran sollte das Tool erkennen was Du willst? Vor allem wenn keine Fremdschlüssel verwendet werden.

Manchmal gibt es gute Gründe für Redundanzen und mit ein bisschen Erfahrung bekommt man dann ganz intuitiv ein sauberes Datenbankdesign. Gerade am Anfang kann es hilfreich sein wenn man ER-Diagramme auf Papier (!) zeichnet. Normalisierung ist eine sehr formale Geschichte und nicht gerade intuitiv.

Durch scharfes Hinsehen (und ein kleines bisschen Erfahrung mit n:m-Beziehungen, sowie Kenntnisse der Vorgeschichte):

img:
img_id, img_url, im_location, im_date, img_type
Primärschlüssel: img_id

user:
user_id, user_name, user_schuhgröße, user_usw
Primärschlüssel: user_id

imageuser:
img_id, user_id
Primärschlüssel: img_id, user_id

Index auf imageuser.user_id evtl. mit img_id als zweites Feld wäre sicher auch noch sinnvoll wenn Bilder zu einem User gesucht werden sollen.


Gruß
Borlander

bei Antwort benachrichtigen
hansapark Nachtrag zu: „Mysql: tool für Datenbankdesign?“
Optionen

puh..

also das mit dem index lass ich erstmal weg.. das ist noch zu hoch...

das andere sieht logisch aus.. am besten wirklich mal aufzeichnen, zumal dann bestimmt auch noch das thema joins kommt, welches mir auch noch unbekannt ist.

eins verstehe ich nicht:
wieso 2 primärschlüssel. da meckert doch phpmyadmin normalerweise (?)

wegen dem tool, ich dachte so, dass man gleich eine ganze spalte rausnehmen kann und woanders wieder einfügen.
ich werde es mal mit csv-dateien und dem openoffice "excel" probieren..


danke sehr
mfg, h.

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
PaoloP hansapark „Mysql: tool für Datenbankdesign?“
Optionen

Also du weisst sicher das fehlenes wissen durch irgendwelche tools schlecht zu ersetzen ist.
Aber nix desto trotz; mein persönlicher Liebling ist der EMS Manager.

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
hansapark Nachtrag zu: „Mysql: tool für Datenbankdesign?“
Optionen

das schlimme ist, im grunde könnte ich selber für mehr wissen sorgen.. ...hatte nur gedacht ich kapiere es eh nie, und muss wen fragen... ..vor kurzem gebraucht gekauft, ein ziemlicher wälzer.. man müsste nur mal mehr reinschauen 8\


http://img34.imageshack.us/img34/3704/dscf2353n.jpg

mfg, h.



bei Antwort benachrichtigen
ChrE hansapark „das schlimme ist, im grunde könnte ich selber für mehr wissen sorgen.....“
Optionen

Hallo,

Datenbankentwurf ist eine komplizierte Sache.

Schau Dir mal die Sache mit den Normalformen an:
http://de.wikipedia.org/wiki/Normalisierung_%28Datenbank%29

Ich habe mal gelent, dass man Datenbanken zumindest in die 3. Normalform bringen muss.
Der Schlüssel lautet: Redundanzvermeidung.
Schau, dass keine Entitäten (http://de.wikipedia.org/wiki/Entit%C3%A4t_%28Informatik%29)
doppelt abgespeichert werden. Immer Zeiger (Ids) für Verweise verwenden.

Gruss

ChrE

bei Antwort benachrichtigen