php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.06.2011, 23:44  
Benutzer
 
Registriert seit: 21.08.2008
Beiträge: 40
P4trik befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] INSERT bei zwei Tabellen mit Zwischentabelle

Hallo Leute,
es ist schon ein paar Jahre bei mir her mit SQL und die Frage ist so einfach, dass sie vermutlich noch keiner hier gestellt hat . Jedenfalls bin ich mit der Suchfunktion nicht fündig geworden

Ich habe drei Tabellen. main_category , sub_category und category. Category verknüpft main_category und sub_category. Nun möchte ich einen INSERT auf alle drei Tabellen machen bzw. die Beziehung herstellen.
Mache ich nun einen INSERT nacheinander auf die Tabellen oder mit einem Join gleichzeitig ?

Code:
CREATE TABLE main_category(
id_main_category INT NOT NULL AUTO_INCREMENT ,
title VARCHAR( 50 ) NOT NULL ,
description VARCHAR( 500 ) NOT NULL ,
PRIMARY KEY ( id_main_category )
)ENGINE=myisam;


CREATE TABLE sub_category(
id_sub_category INT NOT NULL AUTO_INCREMENT ,
title VARCHAR( 50 ) NOT NULL ,
description VARCHAR( 500 ) NOT NULL ,
PRIMARY KEY ( id_sub_category )
)ENGINE=myisam;


CREATE TABLE category(
id_category INT NOT NULL AUTO_INCREMENT ,
id_sub_category INT NOT NULL,
id_main_category INT NOT NULL,
PRIMARY KEY ( id_category ), 
FOREIGN KEY (id_sub_category) REFERENCES 
sub_category(id_sub_category),
FOREIGN KEY (id_main_category) REFERENCES main_category(id_main_category)
)ENGINE=myisam;
Gruß P4trik
P4trik ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.06.2011, 00:10  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Drei INSERT-Statements, am Besten innerhalb einer Transaktion, sofern die Engine das unterstützt (z.B. innoDB).
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 21.06.2011, 01:49  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.723
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Warum denn drei Tabellen? Wie wär's mit einer Tabelle:

category : id | title | description | parent_id

Für Hauptkategorien enthält parent_id den Wert null, für Unterkategorien die ID der jeweiligen übergeordneten Kategorie.

Weiterführend: http://de.wikipedia.org/wiki/Nested_Sets
__________________
Blog | Buch | Kaloa
mermshaus ist offline   Mit Zitat antworten
Alt 21.06.2011, 20:46  
Benutzer
 
Registriert seit: 21.08.2008
Beiträge: 40
P4trik befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für die Antworten =) Ist das insgesamt so das man die Tabellen nacheinander füllt ? Habe ja gerade nur ein kleines Beispiel genommen.
P4trik ist offline   Mit Zitat antworten
Alt 21.06.2011, 20:48  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Ja, wenn sie aber nur zusammen gültig sind, dann umschließ sie mit einer Transaktion. Mit COMMIT kannst du sie am Ende, wenn alle erfolgreich eingetragen wurden, eintragen, oder bei einem Fehler mit ROLLBACK zurückrollen.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 22.06.2011, 08:34  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

insbesondere ist das "nacheinander"-Eintragen ja geradezu zwingend, wenn du Fremdschlüsselbezüge setzen willst - du trägst in Tabelle A ein, holst dir die Last_insert_id, trägst unter Verwendung der geholten ID in Tabelle B .. C ... X weiter ein ...
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Abfrage und Insert zwischen zwei Tabellen wali Scriptbörse 7 19.06.2011 19:21
INSERT über mehrere Tabellen maikell Datenbanken 4 25.08.2010 11:39
[Erledigt] mehrfaches INSERT über PHP drzwockel PHP Tipps 2010 10 10.08.2010 11:03
[Erledigt] Update Insert von Tabellen frank1973 Datenbanken 14 11.04.2010 18:49
INSERT INTO eingaben über 2 Tabellen maclaim1988 PHP Tipps 2009 9 04.02.2009 03:30
INSERT INTO beim Anlegen neuer Tabellen? fabbrauchthilfe PHP Tipps 2008 3 20.08.2008 22:51
Pathfinding Algorithmus optimieren? (Algorith. von Dijkstra) Martin13 PHP Tipps 2007 19 04.09.2007 19:20
Differenz zwischen 2 Zahlen duderino PHP Tipps 2006 19 10.08.2006 22:12
PRoblem mit Cookie bei PHPbb-Board PHP Tipps 2007 8 12.12.2005 20:56
mysql dump einspielen (ohne phpmyadmin) PHP Tipps 2005-2 6 18.06.2005 21:50
[Erledigt] fehler den ich noch nie gesehen habe Datenbanken 7 09.06.2005 14:29
Insert über zwei Tabellen, aber wie? Datenbanken 1 08.01.2005 14:10
INSERT INTO mehrere tabellen konsti Datenbanken 3 23.10.2004 19:28
[Erledigt] INSERT INTO SELECT an mehrere Tabellen? Datenbanken 6 17.09.2004 16:57
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql tabellen verknüpfen über zwischentabelle, join über zwischentabellen sql, sql insert zwischentabelle, join mysql zuordnungstabelle insert beziehung, insert in mehrere tabellen, wiki zwischentabelle, myisam foreign key, mysql join über zwischentabelle, join zwischentabelle, sql zwischentabelle insert, insert into beziehung erstellen, tsql differenz zwischen zwei tabellen, insert sql über 2 tabellen, insert into 2 tabellen beziehung, sql insert into in 2 tabellen, insert into bei zwei tabellen, myisam unique key mehrere tabellen, join zwischentabelle t-sql, mysql join zwischentabelle, insert into über mehrere tabellen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum