2 Stimmen

Datenbankdesign für historische Aggregation

Ich versuche zu entscheiden, welches der beste Entwurf für ein Data Warehouse ist. Es soll verwendet werden, um über eine Google-Suche historische Durchschnittspreise für verschiedene Artikel in verschiedenen Zeiträumen zu finden. Was war zum Beispiel der Durchschnittspreis von Aktie A in diesem Monat, vor 3, 6 und 1 Jahr? Das Problem ist, dass ich keinen Artikelnamen habe, den ich verwenden kann, sondern nur Beschreibungsfelder für den Artikel.

Das bedeutet, dass ich keine Artikel in Ansichten zusammenfassen kann, da derselbe Artikel vielleicht 20 Mal mit unterschiedlichen Beschreibungen aufgeführt wird. Ich muss also eine Volltextsuche im Beschreibungsfeld durchführen und den Preis ermitteln, bei dem das Einfügedatum < 3 Monate zurückliegt. Dann suche ich den Durchschnitt davon.

Am besten ist es also, wenn ich alles in einer Tabelle habe:

            MAIN
----------------------------
ID | Description | Price | Date

oder viele Tabellen:

    DESCRIPTION
------------------
ID | Description | 

   PRICE
---------
ID | PRICE

Ich muss nur beitreten, um die gewünschten Daten zu erhalten. Die Datenbank wird ein paar Millionen Zeilen enthalten. Wenn ich eine Möglichkeit hätte, den echten Namen des Artikels zu erhalten, könnte ich die Daten voraggregieren, aber das ist keine Option für mich. Ich bin für jeden Ratschlag dankbar!

0voto

Joel Martinez Punkte 45129

Ich würde sagen, Option 2 ... behalten Sie die Details der obersten Ebene in der Tabelle "Beschreibung". Und die historischen Daten in der Tabelle "Preis" (wenn auch mit einem hinzugefügten Datumsfeld, um den zeitlichen Wert zu erfassen)

0voto

Rob Paller Punkte 7596

Wie Joel vorgeschlagen hat, wird Ihnen Option 2 wahrscheinlich mehr Flexibilität bieten. Ich würde vorschlagen, zusätzliche Daten in jede Tabelle aufzunehmen, um sich langsam ändernde Dimensionen zu berücksichtigen. Beschreibungen und andere Attribute zu einem bestimmten Artikel können sich im Laufe der Zeit ändern.

Im Falle eines Einzelhändlers würden Sie höchstwahrscheinlich auch die Filial-ID angeben, da die Preise für Artikel an verschiedenen Standorten aufgrund des Wettbewerbs und der demografischen Zusammensetzung Ihrer Kunden in der Nähe eines bestimmten Standorts sehr wahrscheinlich unterschiedlich sind.

    DESCRIPTION
---------------------------------------------------
ID | Description | Effective Date | Expiration Date

   PRICE
-----------------------------------------------------------
ID | Location ID | Price | Effective Date | Expiration Date

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X