PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Suchen in N:N Tabelle (http://www.selfphp.de/forum/showthread.php?t=24572)

Frankieboy 12.02.2012 03:25:04

Suchen in N:N Tabelle
 
Hallo Forum,

ich habe ein mysql-Problem und leider keine richtig gute Lösung ;-(. Vielleicht habt ihr einen guten Ansatz.

Die Ausgangslage: Ein Fertigprodukt, z. B. ein Fahrrad besteht aus diversen Einzelteilen. In einer dreispaltigen Tabelle steht in der zweiten Spalte die Fahrrad-Modell-ID und in der dritten Spalte die Einzelteil-ID.

Also z. B. so:

mysql_ID, Fahrrad_Modell_ID, Einzelteil_ID
------------------------------------------
1, 327, 4583
2, 489, 5869
3, 895, 9327
4, 327, 7560
5, 109, 5869
6, 895, 7560

Vereinfacht ausgedrückt kann man sagen, eine Fahrrad-Modell-ID steht zum Beispiel für "28er-Holländer-Damenrad-Standard-Ausstattung". Eine Einzelteil-ID repräsentiert z. B. eine bestimme Vorderlampe.

Einer Fahrrad_ID sind (natürlich in verschiedenen Zeilen) bis zu 90 Einzelteil-IDs zugeordnet. Umgekehrt kann ein Einzelteil (ID) in bis zu 2000 Fahrrad-Modellen verbaut sein. Insgesamt besteht die Tabelle aus 800.000 Zeilen.

In ein Formular sollen jetzt bis zu 10 Einzelteil_IDs eingetragen werden können. Im Ergebnis sollen dann alle Fahrräder (Fahrrad_Modell_IDs) angezeigt werden, in denen alle im Formular genannten Einzelteile (Einzelteil_ID) verbaut sind. Ich bekomme es leider nur über umständliche Zwischespeicherungen hin. Das ist weder besonders "elegant" (womit ich zur Not Leben könnte) noch hinreichend performant (womit ich eigentlich nicht Leben kann).

Ich Freue mich über Tipps und Hinweise. Danke.

DokuLeseHemmung 12.02.2012 06:54:36

AW: Suchen in N:N Tabelle
 
Ich verstehe dein Problem nicht!

Eine N:M braucht 3 Tabellen!
Das hast du schon (scheinbar) richtig gemacht.

Verbunden werden sie über JOIN.

Siehe:
A Visual Explanation of SQL Joins
SQL und relationale Algebra
Die 5 Normal Formen


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

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.