php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.07.2011, 22:46  
Neuer Benutzer
 
Registriert seit: 25.04.2009
Beiträge: 26
PHP-Kenntnisse:
Fortgeschritten
VVoLv3r!n3 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Datenbank anlegen

Ich habe eine Datenbank mit Myql Workbench anglegt. Nur leider kann ich nix einfügen Ich glaube das liegt daran das die Datenbank nicht optimal gestaltet ist bzw. die Foreign Keys nicht richig gesetzt sind. Wenn ich ein insert machen will kommt folgende Fehlermeldung:

Zitat:
Cannot add or update a child row: a foreign key constraint fails (`wh24405sql5`.`shopping`, CONSTRAINT `fk_shopping_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)
Das Ziel ist es später solch eine Ausgabe machen zu können:
Bild



Ich hab im Anhang ein Savefile von Workbench angehängt.
Wie würdet ihr die Datenbank gestalten?
Was kann man besser machen?
Was habe ich falsch gemacht?
Angehängte Dateien
Dateityp: zip Archiv.zip (16,4 KB, 5x aufgerufen)
Dateityp: zip sql.zip (1.013 Bytes, 4x aufgerufen)

Geändert von VVoLv3r!n3 (12.07.2011 um 11:57 Uhr).
VVoLv3r!n3 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.07.2011, 23:54  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Kannst du nich hier mal die Struktur beschreiben? Also beide Tabellen und das was du in eine der Tabellen einträgst? Ich hab kein MySQL Workbench installiert.
Flor1an ist offline   Mit Zitat antworten
Alt 12.07.2011, 00:25  
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

Dann stimmt wohl der Fremdschluesselwert nicht
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 12.07.2011, 11:58  
Neuer Benutzer
 
Registriert seit: 25.04.2009
Beiträge: 26
PHP-Kenntnisse:
Fortgeschritten
VVoLv3r!n3 befindet sich auf einem aufstrebenden Ast
Standard

Habei die SQL-Datei angehängt
VVoLv3r!n3 ist offline   Mit Zitat antworten
Alt 12.07.2011, 12:32  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Auf gut deutsch: Du hast in einer Tabelle einen Fremdschlüssel (auf "user") und aktualisiert einen Datensatz aus der Tabelle, die einen Fremdschlüssel auf einen nicht mehr existierenden User enthält.

noch Deutscher: In Tabelle "shopping" liegt der Fremdschlüssel "user_id" , mit einem Constraint auf Tabelle "user" Feld "id". Constraints sorgen für referentielle Integrität, d.h. es werden Fremdschlüssel überprüft, ob es zu ihnen einen existenten Datensatz gibt. Und das ist bei dir nicht der Fall - du wolltest in Tabelle "shopping" wohl eine "user_id" einfügen, für die es in Tabelle "user" keinen Eintrag gibt.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 12.07.2011, 19:46  
Neuer Benutzer
 
Registriert seit: 25.04.2009
Beiträge: 26
PHP-Kenntnisse:
Fortgeschritten
VVoLv3r!n3 befindet sich auf einem aufstrebenden Ast
Standard

Danke Istgelitz für die schöne Übersetzung, das wars gewesen. Dann hab ich noch ein Optimierungsfrage. Die Tabelle shopping sieht zur Zeit so aus:


1 2011-07-14 Real Milch 2 3.22 1
2 2011-07-14 Real Butter 1 3.22 1

Man sollte doch noch das Datum, das Geschäft in eine andere Tabelle machen oder?
VVoLv3r!n3 ist offline   Mit Zitat antworten
Alt 12.07.2011, 19:47  
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

Das Datum nicht, es sei denn du hast wirklich riesige Mengen von Einträgen (Millionen) und filterst oft danach. Sprich wenn eine Abfrage mit Datum sehr lange dauert.
Das Geschäft oder das Produkt würde ich in jedem Fall auslagern.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 12.07.2011, 20:06  
Neuer Benutzer
 
Registriert seit: 25.04.2009
Beiträge: 26
PHP-Kenntnisse:
Fortgeschritten
VVoLv3r!n3 befindet sich auf einem aufstrebenden Ast
Standard

Das quasi nache in der tabelle shopping nur noch steht:

id, date, goods_id, shop_id, user_id, unit, unit_price,

1(id),23-05-99(date),2(goods_id),4(shop_id),1(user_id),3(unit) ,0.22(unit_price)


Geändert von VVoLv3r!n3 (12.07.2011 um 20:52 Uhr).
VVoLv3r!n3 ist offline   Mit Zitat antworten
Alt 12.07.2011, 21:50  
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

Das ist ja nahezu vorbildlich, sowohl das Schema, als auch die Tatsache dass dein ER-Modell nicht nur im Kopf oder als SQL existiert Wobei ich dir nur noch raten kann:
Sortier die Spalten in shopping, das ist bei dir etwas durcheinander.
Primärschlüssel zuerst, danach Fremdschlüssel (nach Bedeutung), am Ende die eigentlichen Eigenschaften. Ich gebe dann jeder Tabelle immer noch einen edited und einen created Zeitstempel mit (DATETIME). Schadet nicht wenn man weiß, wie alt ein Eintrag ist.

Übrigens Glückwunsch, dass dein Akku vom Mac noch geht, kenne keinen mehr bei dem das noch der Fall ist. Pünktlich zum Ablauf der Garantie gingen da die Lichter aus.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 12.07.2011, 22:31  
Neuer Benutzer
 
Registriert seit: 25.04.2009
Beiträge: 26
PHP-Kenntnisse:
Fortgeschritten
VVoLv3r!n3 befindet sich auf einem aufstrebenden Ast
Standard

Danke werd ich machen das mit der Sortierung und das mit dem Zeitstempel werd ich auch mal ausprobieren. Bin mit meinem Akku hochaufzufrieden, der hat mich noch nie im Stich gelassen und hält länger als die üblichen Notebooks von Toshiba und Co. Kann bis jezt nix schlechts über den Mac sagen Danke dir für deine Hilfe. Noch ein Tipp zum Forum, da du ja Mod bist. Man könnte die Eingefügten Bilder automatisch verkleinern, wenn sie sie meins oben zu gross sind. Kenn das aus anderen Foren.
VVoLv3r!n3 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
Hilfe: datenbank mappen und kopieren M*I*B Datenbanken 29 15.02.2012 21:55
Datenbank austauschbar machen durch Trennung von konkreter Implementierung Asipak PHP-Fortgeschrittene 10 04.09.2009 00:11
Kunden in der Datenbank anlegen bzw. aktualisieren RWayne Datenbanken 11 22.07.2009 10:55
[Erledigt] Im- / Export einer MySQL Datenbank amaier161 Datenbanken 5 19.07.2009 00:42
[Erledigt] Datenbank mit MySQL und PHP anlegen HermannPrechtl PHP Tipps 2008 6 02.09.2008 11:56
[Erledigt] mysql datenbank anlegen aber WIE?? Datenbanken 0 05.08.2005 19:35
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:34
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? PHP Tipps 2005-2 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datenbank anlegen, wie baut man constraints in mysql workbench ein

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:52 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