2009-05-14 9 views
1

Ich habe zwei Tabellen: "Stock Master" und "Stock In", wie erstelle ich eine Viele-zu-Eins-Beziehung zwischen ihnen? "Stock In" zeichnet viele verschiedene Bestände nach unterschiedlichen Daten und Mengen auf, aber "Stock Master" muss die gleichen Bestände mit ihren Mengen in einem anzeigen und kombinieren und muss als First-In-First-Out fungieren.Wie man eine Viele-zu-Eins-Beziehung in PostgreSQL hinzufügt

Antwort

0

Sofern ich hier etwas nicht verpasse, würden Sie dies mit den entsprechenden primären/fremden Schlüsselbeziehungen behandeln.

1

Es klingt nicht wie ein many-to-one ist, was Sie wirklich brauchen.

Wenn ich richtig verstehe, haben Sie Inventar zu verschiedenen Zeiten verschiedener Typen kommen. Sie möchten aufzeichnen, was hereingekommen ist, Sie möchten sehen, wie viel von einem bestimmten Typ Sie haben, und Sie möchten den ältesten empfangenen Stapel identifizieren können, damit Sie den Versand priorisieren können.

Stark vereinfacht, Sie würden nur diese eine Tabelle Aufnahme empfangen Sendungen mit einer Uhrzeit und Datum erhalten Spalte, die Sie WHERE-Klauseln auf, um festzustellen, welcher Eintrag ist der älteste und sollte daher versendet werden.

Sie benötigen keine Tabelle als solche für die Aggregation von Inventar (ignorieren Optionen wie materialisierte Ansichten und solche für jetzt). Summieren Sie einfach die Mengenspalte; Gruppe nach Produkttyp.

+0

Ja! Das ist was ich will! kann jemand es in Postgresql tun? –

0

Wenn Sie eine Ansicht in Postgresql erstellen möchten (wie Sie von Ihren Kommentar zu JosefAssad Rat erscheint tun), wie in fast jedem anderen SQL db, verwenden Sie so etwas wie:

CREATE VIEW Stockmaster (prodid, total) 
    AS SELECT prodid, SUM(quantity) 
    FROM Stockin 
    GROUP BY prodid 
Verwandte Themen