MYSQL für absolute Anfänger - Daten in normalisierte DB einfügen
DarkAngel1004
- datenbank
0 Alex0 DarkAngel10040 Alex
Hallo zusammen!
Ich bin totaler Newbie was Datenbanken angeht und weiß noch nicht einmal, wie ich diese befüllen soll.
Struktur sieht so aus:
Tabelle1
ID
Feld1
Tabelle2_id
Tabelle3_id
Feld2
Feld3
Tabelle2
ID
Feld1
Tabelle3
ID
Feld1
Es sollen also die Felder "Tabelle2_id" und "Tabelle3_id" mit den Inhalten aus "Tabelle2.ID" sowie "Tabelle3.ID" gefüttert werden.
Falls dieser Beitrag schon irgendwo existiert, entschuldige ich mich im Voraus, ich weiß einfach nicht, wonach ich suchen soll...
Viele Grüße und danke im Voraus.
Hallo DarkAngel1004,
Stichpunkt zu Deiner Frage: Foreign-Key zu deutsch Fremdschlüssel
Ansonsten such mal bei google nach "Grundlagen SQL"
Welche SQL Datenbank verwendest Du? Access? MySQL? ...
Wie programmierst Du? Makro? PHP? ...
Gruß,
Alex.
PS: Es mangelt an Informationen zum verwendeten System um Dir genauer helfen zu können, siehe Fragen oben.
Hallo Alex,
Welche SQL Datenbank verwendest Du? Access? MySQL? ...
Wie programmierst Du? Makro? PHP? ...
Ich dachte, das hätte ich mit der Überschrift neben "Thema/Betreff" schon erläutert...
PS: Es mangelt an Informationen zum verwendeten System um Dir genauer helfen zu können, siehe Fragen oben.
"Thema/Betreff: MYSQL für absolute Anfänger - Daten in normalisierte DB einfügen"
Hoffe, das hilft dir ;-)
LG
blind wie ich bin ... sorry
Dennoch, wie programmierst du das? Ich geh mal von PHP aus.
Zum befüllen solltest du ein Formular (HTML) haben, über das die Daten eingetragen und übergeben werden können
Suche nach: "Formular HTML"
Danach kannst du diese Daten mit Hilfe von php verarbeiten (z.B. auf Korrektheit Prüfen, in variablen Speichern) und dann in die Tabelle 1 mit Hilfe von SQL eintragen
Stichpunkt: "INSERT INTO"
Folgendes beachten:
Gruß,
Alex.
Hi Alex,
blind wie ich bin ... sorry
kein Problem ;-)
Dennoch, wie programmierst du das? Ich geh mal von PHP aus.
Da ich eher Probleme mit dem fehlenden Hintergrundwissen von MySQL habe, dachte ich, dass PHP egal wäre, sorry.
Zum befüllen solltest du ein Formular (HTML) haben, über das die Daten eingetragen und übergeben werden können
Habe ich, habe zuerst alle Daten in eine einzige Tabelle eingetragen. Funktionierte auch wunderbar, dauert aber ca. 30 Minuten...
(Eintragen von schätzungsweise 1 Mio. Daten, inklusive Überprüfung auf doppelte Daten).
Stichpunkt: "INSERT INTO"
Folgendes beachten:
- Nur die Einträge von Tabelle2 und 3 dürfen angezeigt werden, die auch vorhanden sind.
OK, dann mache ich
INSERT INTO Tabelle2 (Feld1)
VALUES ('abc','def','ghi');
INSERT INTO Tabelle3 (Feld1)
VALUES ('max','moritz','lempel');
Wie geht's dann weiter, stehen die IDs dann schon in Tabelle1??
Das ganze muss beim verarbeiten auch wieder überprüft werden.
- Sicherheit (SQL Injection, ...)
- uvm.
Versteh' nur Bahnhof, sorry.
Gruß zurück
DA
Zum befüllen solltest du ein Formular (HTML) haben, über das die Daten eingetragen und übergeben werden können
Habe ich, habe zuerst alle Daten in eine einzige Tabelle eingetragen. Funktionierte auch wunderbar, dauert aber ca. 30 Minuten...
(Eintragen von schätzungsweise 1 Mio. Daten, inklusive Überprüfung auf doppelte Daten).
Hinweis: Bei der richtigen Anwendung der DB, werden sowieso keine doppelten Datensätze eingetragen.
INSERT INTO Tabelle2 (Feld1)
VALUES ('abc','def','ghi');INSERT INTO Tabelle3 (Feld1)
VALUES ('max','moritz','lempel');Wie geht's dann weiter, stehen die IDs dann schon in Tabelle1??
Kommt drauf an, ob du einen Autowert für die IDs festgelegt hast oder nicht.
Autowert bedeutet automatische nummerierung der Einträge durch die DB.
Wie verwaltest du die Tabellen? phpmyadmin? Falls ja, sobald ein Attribut als Autowert benutzt wird, ist es automatisch ein Primärschlüssel (DB Grundlagen) Damit gibt es diese ID nur ein einziges mal in der Tabelle. Willst du auch Feld1 nur ein einziges mal haben, muss es Unique sein.
Falls deine Tabelle keinen autowert hat, musst du die ID selber eintragen.
Das ganze muss beim verarbeiten auch wieder überprüft werden.
- Sicherheit (SQL Injection, ...)
- uvm.
Versteh' nur Bahnhof, sorry.
Ein Formular, vor allem wenn es im WWW liegt, sollte möglichst sicher programmiert werden.
über SQL injection können z.B. DB Einträge gelöscht werden.
Weitere Informationen unter google.de -> "SQL Injection"
zudem der Stichpunkt: register_globals off
Gruß,
Alex.
Zum befüllen solltest du ein Formular (HTML) haben, über das die Daten eingetragen und übergeben werden können
Habe ich, habe zuerst alle Daten in eine einzige Tabelle eingetragen. Funktionierte auch wunderbar, dauert aber ca. 30 Minuten...
(Eintragen von schätzungsweise 1 Mio. Daten, inklusive Überprüfung auf doppelte Daten).Hinweis: Bei der richtigen Anwendung der DB, werden sowieso keine doppelten Datensätze eingetragen.
Deshalb will ich das Ganze ja "normalisieren", habe dafür nur noch keine Schritt-für-Schritt-Anleitung für DAUs gefunden ;-)
Wie geht's dann weiter, stehen die IDs dann schon in Tabelle1??
Kommt drauf an, ob du einen Autowert für die IDs festgelegt hast oder nicht.
Autowert bedeutet automatische nummerierung der Einträge durch die DB.
Wie verwaltest du die Tabellen? phpmyadmin? Falls ja, sobald ein Attribut als Autowert benutzt wird, ist es automatisch ein Primärschlüssel (DB Grundlagen) Damit gibt es diese ID nur ein einziges mal in der Tabelle.
OK, also soll ich die id-Felder in Tabelle1 mit einem auto_increment versehen? Beim MySQL-Referenzhandbuch sah es immer so aus, als wären die IDs dann immer einmalig, was bei Tabelle2 und Tabelle3 auch Sinn macht...
Falls deine Tabelle keinen autowert hat, musst du die ID selber eintragen.
Also Daten eintragen, ID mit PHP holen und in Tabelle1 eintragen.
Ein Formular, vor allem wenn es im WWW liegt, sollte möglichst sicher programmiert werden.
über SQL injection können z.B. DB Einträge gelöscht werden.
Weitere Informationen unter google.de -> "SQL Injection"
zudem der Stichpunkt: register_globals off
Danke, werde mich mal umsehen.
LG
DA