Tabellendesign - Anforderungen wie am besten umsetzbar?

seraphim

New Member
Ich habe ein kleines Projekt im Zuge meines Studiums zu erledigen auf Basis von Access 2010.

Meine bisherigen Tabellen:
customer
-custid (primary key, auto number)
-custname (text)
-custaddress (text)
-custzip (text)
-custtown (text)
-exchangetype (bool)

palettes
-palid (primary key, auto number)
-palname (text)
-paldimensions (text)
-paldescription (text)
-palprice (currency)

Mein Problem ist nun dass ich jedem Kunden einen Bestand an jeder PalID zuordnen möchte ohne dass ich enorm viel Datenmüll in der Tabelle produziere.
Eine Idee wie man es (mit viel Datenmüll) machen könnte:

data
-palid (reference on palettes.palid)
-custid (reference on customer.custid)
-count (number)

Das Problem ist dass ich hier im Zweifelsfall pro Kunde so viele Zeilen als maximum ansetzen müsste wie ich PalIDs habe.

Eine andere Idee wäre noch folgende:
data
-custid (reference on customer.custid)
-(1)
-(2)
...
-(höchste palid)
Was aber zur Folge hätte dass ich enorm viele Spalten hätte, die zur Laufzeit anpassen müsste und sehr viele leere Felder entstehen.

Fallen euch noch andere Desings/Umsetzungsmethoden für dieses Problem ein? Welcher Weg ist der Effizienteste?

Mir ist klar dass ich nicht mit abertausenden Zeilen rechnen muss, doch dennoch sollte man nichts ausschließen und gleich sauber designen.

Parallel dazu bin ich am Überlegen eine Log mit anzulegen die die Änderungen mitsamt Datum und Art der Änderung dokumentiert, da schwebte mir vor:
log
-logdate (date)
-custid (reference on customers.custid)
-change (memo)

Gibt es auch dafür vielleicht eine bessere Lösung?
 
Beschreibe dein Problem.

Wir haben von dir bis jetzt nur zwei Tabellenschemas und zwei von dir angebotene Lösungen für ein Problem, welches wir nicht kennen.
 
Mein Problem ist nun dass ich jedem Kunden einen Bestand an jeder PalID zuordnen möchte ohne dass ich enorm viel Datenmüll in der Tabelle produziere.

Das ist mein Problem, ich frage euch nach dem optimalen Weg mit der höchsten Effizienz jedem einzelnen Kunden einen Bestand einer PalID zuzuordnen.

//edit: Also ist die erste Lösungsvariante mit der einen Zeile pro Kunde/PalID Kombination konzeptionell akzeptabel?
 
Bau mal deine Datenbank nach den Normalformen zusammen. Bei deinem Projekt kommst du um Welten nicht in Bereiche, wo du über Effizienz nachdenken musst. Und wenn, dann sicher nicht bei den Join-Tabellen.
 
Ok dann mach ich´s so ;-)

Es ist ja auch nun wirklich nichts dickes, es soll nur ein Projekt für Datenbanken II - Access im Studium sein das an sich nichts nennenswertes mit Informatik zu tun hat :)

Danke für die Hilfen :)
 
Back
Top