![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Neuer Benutzer
Registriert seit: 02.04.2006
Beiträge: 23
|
hi leuts,
habe ein abfrageproblem. Ich weiss wo der fehler liegt in meiner abfrage, weiss allerdings nicht wie ich ihn beheben kann. hab zwei miteinander verknüpfte tabellen. in der einen stehen druckerpatronen und druckköpfe drin und in der anderen das druckermodell, welches die entsprechenden patronen haben kann. hierbei muss berücksichtigt werden, dass ein druckermodell mehrere patronen haben kann (sw,color,photo + druckköpfe). die tabellen sehen folgendermaßen aus: Code:
table patronen patronenid serial not null primary key, modellbezeichnung varchar(20) not null, kurzbezeichnung varchar(5), farbe varchar(10) table druckermodell druckermodellid serial not null primary key, modellbezeichnung not null, typ varchar(20), patrone_sw_id integer -> patronen.patronenid, patrone_color_id integer -> patronen.patronenid, patrone_photo_id integer -> patronen.patronenid druckkopf_sw_id integer -> patronen.patronenid usw. Code:
SELECTdruckermodell.modellbezeichnung, druckermodell.typ, patronen.modellbezeichnung AS patrone_sw, patronen.modellbezeichnung AS patrone_color, patronen.modellbezeichnung AS patrone_photo, patronen.modellbezeichnung AS druckkopf_swFROMdruckermodell LEFT OUTER JOIN patronen(patronen.patronenid = druckermodell.patrone_sw_id AND patronen.patronenid = druckermodell.patrone_color_id AND patronen.patronenid = druckermodell.patrone_photo_id AND patronen.patronenid = druckermodell.druckkopf_sw_id AND) kann mir bitte einer helfen, möglichst schnell...pls greets tsj |
|
|
|
|
|
Nach oben #2 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
Code:
patrone_sw_id integer -> patronen.patronenid, patrone_color_id integer -> patronen.patronenid, patrone_photo_id integer -> patronen.patronenid druckkopf_sw_id integer -> patronen.patronenid mit der normalisierten struktur sollte deine abfrage auch wesentlich leichter werden (schau dir mal das Stichwort "Normalisierung" an) kurzer abriss: Code:
table patronen id modell kurz farbe patronentyp_id -> patronentyp.id table patronentyp id Typ table druckermodell id modell typ_id -> druckertyp.id patrone_id -> patronen.id table druckertyp id Typ //edits beendet ![]()
__________________
I did it my way - Senseless-Blog Geändert von WarrenFaith (20.04.2006 um 12:57 Uhr). |
|
|
|
|
|
Nach oben #3 |
|
Neuer Benutzer
Registriert seit: 02.04.2006
Beiträge: 23
|
also mit normalisierungen musste ich mich leider schon genug beschäftigen.
wäre es nicht dann immer noch einfacher bzw. sinnvoller, wenn ich aus der einen tabelle patronen 7 stk. machen würde? patronen_sw patronen_color patronen_photo druckkopf_sw druckkopf_cyan druckkopf_magenta druckkopf_yellow ich sehe letztendlich keine großen sinn in deiner änderung. schon mal was davon gehört, dass man sich totnormalisieren kann? ich würde nicht unbedingt bis zur 6. normalisierung gehen! also das bringt mir nun keine änderung. wenn ich das richtig verstanden habe, hast du mir die tabellen nur nochmal normalisiert! dadurch könnte ich aber die abfrage so immernoch nicht nutzen! mir würde dazu nur noch einfallen die tabellen in die farben zu trennen! Geändert von Jann Hendrik (20.04.2006 um 14:05 Uhr). Grund: 2 postings hintereinander |
|
|
|
|
|
Nach oben #4 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
du machst doppelte datenhaltung, wenn du deine tabellen einfach nur xmal erstellst. normalisierung hat nunmal den effekt der großen dynamik und der verhinderung der doppelten Datenhaltung. Überleg dir dann mal, wie oft du deine programmierte Patronensuche neu anpassen musst, blos weil ein neuer Patronentyp auftaucht?!
ich werde jedenfalls nicht dazu beitragen, dass uneffektive Datenbanken erstellt werden. solltest du dich doch eher an die korrekte vorgehensweise halten und dann probleme haben, bin ich gerne bereit dir zu helfen. |
|
|
|
|
|
Nach oben #5 |
|
Neuer Benutzer
Registriert seit: 02.04.2006
Beiträge: 23
|
nu bleib mal locker....
wer redet den davon sich nicht an korrekte vorgehensweisen zu halten? aber sag mir mal bitte was du unter einem patronentyp verstehst. vielleicht reden wir aneinander vorbei. solltest du hier von den druckköpfen und den patronen reden, so muss ich dich nämlich entäuschen! druckköpfe sind in der regel kein patronentyp. ich rede eher von den druckköpfen, wie man sie in officejets von hp vorfindet. ich werde definitiv keine doppelten daten haben! hätte ich so oder so net, denn selbst wenn die kurzbezeichnung identisch mit einer anderen ist (kommt bei druckköpfen öfters vor), dann unterscheidet die modellnr immer noch jeden tupel, denn diese modellnr ist unique!! da die kurzbezeichnung bekannterweise in der regel nur aus zwei zahlen besteht (z.b. bei hp für die c6615x -> 15), werde ich hierfür nicht eine weitere entität erstellen, das ginge nämlich dann richtung 6. normalisierung...ich gehe bei meinem dbs aber grundsätzlich nur bis zur dritten, alles andere macht in meinen augen keinen sinn. ich will damit ja nicht sagen, dass du irgendwie mist gemacht hättest, nur sind wir vollkommen vom thema abgekommen. vorerst habe ich (zumindestens um meine probleme schnell zu lösen) für alle 7 eine entität erstellt, so bekomme ich zumindestens dann meine abfrage sinnvoll hin. ich bin auch weiterhin für jede hilfe dankbar (auch wenn dies vorgehen nicht jedem als korrekt erscheint -> dann sagt es ruhig, aber bitte vernünftig) greets tsj |
|
|
|
|
|
Nach oben #6 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
falls ich du mein post als aggressiv interpretiert hast oder dich sonstwie angegriffen fühlst, entschuldige ich mich schonmal, das lag nicht in meiner absicht.
Mein problem ist eher, dass Leute, die die Suche nutzen auch diesen Thread finden würden, weshalb ich generell nicht gutheißen kann, dass bewusst auf grundlegendes verzichtet wird. Ich kann natürlich nur begrenzt in deine Gedankenwelt hineinschauen, aber wenn du der Meinung bist, dass du mit den Entitäten besser fährst ist das soweit ok. Es klang für mich anfangs nur nach "Lernverweigerung". Also sorry nochmal.
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #7 |
|
Goldman.de
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
|
PHP-Code:
lg J
__________________
Code:
eval('echo "'.gzinflate(base64_decode('8zI2TjGOAAA=')).'";');
|
|
|
|
|
|
Nach oben #8 | |
|
Neuer Benutzer
Registriert seit: 02.04.2006
Beiträge: 23
|
Zitat:
ich habe das problem nun umgangen, wie ich es oben beschrieben habe, also einfach für jede farbenart getrennt. damit ist mir auch schon geholfen und ich habe trotzdem noch keine doppelte datenhaltung, da jede patrone nur einmalig einer entität zugewiesen wird. |
|
|
|
|
|
|
Nach oben #9 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
mit doppelter datenhaltung sind nicht nur doppelte einträge gemeint, sondern auch 2 tabellen, die eigentlich zusammengehören.
wenn du einen erfahrenen DBler in deinem Freundeskreis/Schulkreis hast/kennst, dann frag den mal, er wird mir zustimmen
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #10 | |
|
Neuer Benutzer
Registriert seit: 02.04.2006
Beiträge: 23
|
Zitat:
|
|
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Suche] anleitung für Joins - mySql | bob | Gesuche | 2 | 08.11.2006 18:10 |
| [Suche]Buchtipps & Linktipps zum Thema Barrierefreies Webdesign | WarrenFaith | Gesuche | 2 | 21.09.2006 10:19 |
| [Zend] Gratis Webminar zum Thema Webservices | Jay | Nachrichten | 0 | 19.07.2006 11:09 |
| generelle optimierung von joins | beny_mcde | Datenbanken | 7 | 13.06.2006 06:12 |
| Gedanken zum Thema Captcha | lokari | PHP-Programmierung | 16 | 30.12.2005 18:30 |