Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Hilfe bei Datenbankstruktur da mehr als 255 Spalten nicht möglich sind

Begonnen von lauli, Februar 04, 2011, 19:46:27

⏪ vorheriges - nächstes ⏩

lauli



Hallo zusammen,

ich stehe mir selbst auf der Leitung, wäre toll, wenn mir jemand beim runtersteigen helfen könnte:

Ich möchte eine Datenbank erstellen, die eine tägliche Bestandsaufnahme ermöglicht.

Es sind 20 Standorte, die die gleichen Produkte im Bestand haben.

Zu den einzelnen Produkte sollen weitere Informationen gespeichert werden können (Beschaffenheit, Preis etc)

Zu jedem Standort sollen auch weitere Informationen gespeichert werden können (Adresse, Telefonnummer, Ansprechpartner)

Das Problem welches sich mir stellt ist, dass es 300 Produkte sind, die auch durchaus mehr werden können.

Ich hatte daher die Variante verworfen eine Tabelle mit allen Produkten als einzelne Spalten zu erstellen

Die zweite Variante ich erstelle eine Tabelle_Standort eine Tabelle_Produkt und eine Tabelle_Bestand in der ich die Felder Datum, Produkt, Anzahl, Filiale notiere würde aber bedeuten dass ich 300x20 Zeilen Pro Tag erstelle, was ich auch nicht für sinnvoll halte.

Bisher waren die Daten in einer Excel-Tabelle pro Tag
Links in den Zeilen die Filialen
und oben in den Spalten die Produkte.

So dass pro Tag eine mehrere Seiten grosse Tabelle entstand.

Wäre toll, wenn mir jemand helden könnte. Hoffe ich konnte mich erklären:-)
Mein Access ist 2003.

Viele Grüße

Lauli

MzKlMu

Hallo,
wo kommt die 20 her bei 300*20?
Eine Tabelle für den Bestand ist in der Regel überflüssig in einer DB speichert man keine Bestände. Bestände werden aus der Menge errechnet. Zugänge werden positiv und Abgänge negativ gespeichert. Eine über das Produkt gruppierte Abfrage mit einer Summierung der Menge liefert den Bestand.
Bitte erkläre mal genauer was die DB machen soll.

Werden einfach Zu und Abgänge eines Produkts erfasst, oder nur Produktionzahlen der verschiedenen Filialen.
Es werden ja bestimmt nicht jeden Tag Infos/Mengen zu allen 300 Produkten  erforderlich sein, oder doch?
Gruß Klaus

lauli

Hallo MzKlMu,

Die 20*300 kommt von 20 Standorten die jeden Tag die 300 Produkte melden.
Bei der Datenbank sollen nicht die Umsätze erfasst werden, das machen die Rechner vor Ort.
Die 20 Standorte liefern jeden Tag die vorhandenen Bestände per Fax bzw. Telefon und ja leider ist dies jeden Tag notwendig und ja leider auch für alle Produkte.
Aus den Meldungen der Standorte werden die Liederungen für den nächsten Tag zusammengestellt. Da diese Produkte sehr volatil und schnellebig sind werden sie täglich aufgefüllt/ausgetauscht.

Danke :-)

MzKlMu

Hallo,
dann brauchst Du eine Tabelle für die Standorte, Produkte und die Mengen.

tblProdukte (ProduktID als Autowert, weitere Felder zum Produkt)
tblStandorte (StandortID als Autowert, weitere Felder zum Standort)
tblMengen (MengenID als Autowert, ProduktID_F, StandortID_F, Menge, Datum)

In der Tabelle "tblMengen" gibt es dann in der Tat jeden Tag 6000 Datensätze, das ergibt pro Jahr 1.500.000 Datensätze. Das packt Access noch. Eine gruppierte Abfrage liefert die Bestände. Was mir aber noch unklar ist, wie hast Du Dir das gedacht wenn die Daten am nächsten Tag kommen, die dürfen dann doch nicht in den Bestand eingehen, bzw. was passiert mit den zahlen des Vortags?
Aber auf Dauer dürfte Access da zu "klein" werden. Es hängt natürlich davon ab, wie lange Du diese Daten aufbewahren willst.

Obiger Vorschlag wäre der richtige und normalisierte Aufbau der DB. Bedenke auch, egal wie Du die Tabellen aufbaust, ob Quer (wie ursprünglich von Dir mal angedacht) oder als Datensätze, die Datenmenge ist immer die Gleiche.
Gruß Klaus

database

Hallo,

wenn es denn dein Geschäftsgebaren so verlangt wirst du wohl oder übel eben 6000 Datensätze pro Tag erfassen müssen.
Das sind abzüglich der Wochenenden (104 Tage) rund 6000 * 260 = 1.560.000 Datensätze pro Jahr.
Bei der Beschreibung deiner Tabellen gehe ich von einem Primärschlüssel, einem Datumsfeld und 3 Long Integer - Feldern in der Bestandstabelle aus. - wo liegt das Problem?

die so anfallenden 1.560.000 Datensätzen schafft Access schon - wobei ich im Hinterkopf eine Archivierung habe, die die aktuelle Datensatzanzahl in ein erträgliches Maß verwandeln kann.
Schlimmstenfalls weichst du auf einen SQL-Server aus.

Erstelle die drei Tabellen ...

tblStandort
StandortID         Autowert,  Primärschlüssel
Standort            Text


tblProdukt
ProduktID           Autowert, Primärschlüssel
Produkt              Text
               

tblBestand
BestandID          Autowert, Primärschlüssel
BDatum              Datum
Standort_FK       Zahl, Long Integer
Produkt_FK        Zahl, Long Integer
AnzahlBestand   Zahl, Double


Die Tabellen tblStandort und tblProdukt sind über deren ID-Felder mit den FK-Feldern der tblBestand in Beziehung zu setzen, referenzielle Integrität anhaken nicht vergessen.

Dann erstellst du ein Formular für die Bestandserfassung, in dem du mittels Kombifeld die Filiale/Standort auswählst, das Produkt ebenfalls per Kombifeld zur Auswahl stellst und den Bestand in einer Textbox erfasst.
Das Datumsfeld versorgst du für jeden Datensatz mit dem Standardwert 'Date()' damit bei jedem Datensatz das aktuelle Tagesdatum automatisch erfasst wird.

Um die Bestandsmengen der Filialen/Standorte zu sichten legst du eine Abfrage an, die in der WHERE Klausel die Filiale und das anzuzeigende Datum enthält.

Was meinst du?   ;) ;D

HTH


lauli

Hi,

Danke für Eure Antworten.
Da war ich ja mit meiner Variante 2 schon auf dem richtigen Weg  :)
Ich hatte nur Skrupel vor der Anzahl der Datensätze, aber die habt ihr mir ja genommen:-)

Dann liegt jetzt wohl ne Menge Arbeit vor mir ::)