2016-06-09 32 views
0

Ich versuche eine Rezept-Web-Anwendung zu erstellen, und das Rezept "Steps" in eine MySQL-Tabelle zu erstellen, die dann in "Stages" zusammengefasst werden kann - dh mehrere Schritte. Das Erstellen der Basistabelle ist trivial, da es alles aus einer früheren Arbeit in CSV ist, aber was ich versuche zu verstehen ist, wie kann ich eine zweite Tabelle erstellen, die aus mehreren Zeilen aus Tabelle 1 besteht?Gruppierung von Zeilen aus einer MySQL-Tabelle in einer anderen

Tabelle 1 ('Schritte'):

Step_#  Step_Desc  Consumable  Tool  Recipe 
-------------------------------------------------------- 
    1  Add ingredient Sugar   Bowl  n/a 
    2  Add ingredient Butter  Bowl  n/a 
    3  Mix base ings.  n/a   Mixer  FN_1 
    4  Add ingredient  Eggs   Bowl  n/a 
    5  Add ingredient Flour   Bowl  n/a 
    6  Mix ingredients n/a   Mixer  FN_1 
    7  Transfer to tray n/a   Tray  n/a 
    8  Place in oven  n/a   Oven  200C/50min 
    9  Remove to cool  n/a   Rack  30 min 
--- and so on for 400+ steps 

Tabelle 2 ('Stages') würde dann eine Reihe von Zeilen sein, diese verschiedenen Schritte in verschiedene Gruppen zum Beispiel das Sammeln:

Sponge Bereiten : Step_ # 1,2,3,4,5,6,7 {aus Tabelle 1}

Bake und Rest: Step_ 8,9 {# aus Tabelle 1}

Dice Obst und Chill: Step_ # 193,194,306 (etc - Tabelle 1 wird umarmen e und dieses Beispiel war ziemlich begrenzt und langweilig).

Hat jemand einen Vorschlag, wie dies zu erreichen ist (Fremdschlüssel/Logik?) In MySQL? Ist das überhaupt möglich?

Prost

EDIT: Jeder Schritt in mehrere Stufen genannt werden müssen. (Danke Dan)

+0

ZUR ANTWORT: Siehe Daniels Kommentar zu seiner eigenen Antwort. – user2658194

Antwort

0

Sie können steps Tabelle neue Spalte mit dem Namen stage_id hinzufügen und in dieser Spalte ID der Stufen beibehalten.

+0

Ich denke, das würde - was ich zugegebenermaßen nicht dargelegt habe - jeden Schritt in mehr als einer Stufe begrenzen. Ich werde bearbeiten, um diesen Punkt zu verdeutlichen. Vielen Dank für Ihre Antwort. – user2658194

+0

In diesem Fall können Sie viele bis viele Relationen anwenden. Lassen Sie die Kettentabelle 'steps_stages' mit der Spalte' step_id' und 'stage_id'. Dann ist jede Verbindung zwischen "Stufen" und "Schritten" in dieser Tabelle. Sie können einige Stufen für einen Schritt und einige Schritte für eine Stufe haben. Diese Lösung bietet keine Bestellung. Um die Reihenfolge von "step" in 'stage' hinzuzufügen, können Sie auch die Spalte' order' zur Tabelle 'steps_stages' hinzufügen. Diese Beziehung wird "viele zu viele mit Parameter" genannt. – Daniel

+0

Ich denke das wird es sein! Ich hatte noch nie von Vielen-zu-Vielen gehört, also werde ich das untersuchen. Vielen Dank – user2658194

Verwandte Themen