Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Allgemeine Frage zum Tabellenaufbau n zu m
zurück: Statt Werten werden IDs in Komibinationsfeld angezeigt weiter: Duplikate in einer Tabelle finden und markieren Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
gerold1985
Im Profil kannst Du frei den Rang ändern


Verfasst am:
30. Nov 2009, 15:32
Rufname:

Allgemeine Frage zum Tabellenaufbau n zu m - Allgemeine Frage zum Tabellenaufbau n zu m

Nach oben
       Version: Office 2003

Guten Tag,
Ich hab ein Problem mit meiner Datenbank, und zwar weiss ich nicht genau wie ich in folgendem Fall meine Tabelle aufbauen soll.

Ich habe x Kunden und y Produkte die gekauft werden

Methode1: (umständlicher)

Kunde - ProduktA - ProduktB - ProduktC
KundeA 1 2 5
KundeB 2 4 7

Methode2: (so würd ichs gerne haben)

Kunde | Produkt-Nr. | Menge
KundeA | A | 1
KundeA | B | 2
KundeA | C | 5
KundeB | A | 2
KundeB | B | 4
KundeB | C | 7

Jetzt meine Frage: wenn ich einen neuen Kunden anlege, wie mach ich das ohne das ich in der "Produkt" Tabelle nochmal 3 zeilen anlegen muss für
KundeNEU ProduktA
KundeNEU ProduktB
KundeNEU ProduktC

Ich hoffe jemand versteht hier was ich meine ;)

Freue mich auf Antworten.

THX
astern
Datenmodell-Missionar


Verfasst am:
30. Nov 2009, 15:58
Rufname: Andreas
Wohnort: Rastede


AW: Allgemeine Frage zum Tabellenaufbau n zu m - AW: Allgemeine Frage zum Tabellenaufbau n zu m

Nach oben
       Version: Office 2003

Hallo!
Du brauchst:

tbl_Kunde (kun_id, kun_name, ...)
tbl_Produkt (pro_id, pro_name, ...)
tbl_Bestellung (bes_id, kun_id_f, bes_datum, bes_nr, ...)
tbl_Bes_Pro (bespro_id, bes_id_f, pro_id_f, bespro_menge, bespro_bemerkung)

"_id" sind primärschlüssel
"_id_f" sind Fremdschlüssel

In tbl_Bes_Pro steht, von welchem Produkt welche Menge gekauft wurde (eine sog. "Zwischentabelle").
Zur Vorgehensweise siehe hier:
Datenmodell entwickeln: Welche Tabellen und Beziehungen?

MfG
A*

_________________
1. Access-Gebot: Du sollst lange und gründlich über Dein Datenmodell nachdenken!
2. Access-Gebot: Du sollst keine Formulare erstellen ohne gutes Datenmodell!
tk6
SAP-Consultant


Verfasst am:
30. Nov 2009, 17:01
Rufname:

AW: Allgemeine Frage zum Tabellenaufbau n zu m - AW: Allgemeine Frage zum Tabellenaufbau n zu m

Nach oben
       Version: Office 2003

Ich habe Astern da schonmal widersprochen und bin dafür auch schon abgestraft worden, aber ich denke, mit seinem ständigen beharren auf sog. "Zwischentabellen" tut er - wenigstens hier - dir keinen Gefallen.

Ich versuch's mal anders herum:

1. Du möchtest doch in deiner Datenbank nicht nur "statische" Daten abspeichern - im Gegenteil: du hättest überhaupt keinen Grund, überhaupt Zeit da hinein zu investieren, wenn es nicht um ein Geschehen ginge. Also müssen nicht nur für die Personen und Gegenstände Tabellen vorhanden sein, sondern auch für Sachverhalte und dazu gehören in einer DB auch Tätigkeiten, Vorgänge, Prozesse usw.

2. Was ich sehr gut an Asterns Ansatz finde, ist das formulieren von Sätzen:

"Ein Kunde kauft 5 Stück von Produkt A" - Also brauche ich eine Tabelle mit den Spalten Kunde (natürlich seine KundenID, die Details stehen in tbl_Kunden), Produkt (auch: ArtikelID, Details in tbl_Artikel) und Stueckzahl, hinzu kommt der Preis. Da wir die später nochmal verändern werden, nennen wir die mal tbl_BestellPos_ROH.

3. Die beiden Tabellen tbl_Kunden und tbl_Artikel sind schon erwähnt.

Im Prinzip ist damit schon alles fertig und es ist natürlich auch klar, wie es zusammenhängt, nämlich über die Beziehungen zwischen den Tabellen über
* tbl_Artikel.ArtikelID - tbl_BestellPos_ROH.ArtikelID_FK ("FK" steht für Fremdschlüssel, so bezeichnet man ein Feld, das in einer anderen Tabelle Schlüssel ist und in dieser Tabelle dazu dient, die Daten aus der anderen Tabelle zu "ziehen")
* tbl_Kunden.KundenID - tbl_BestellPos_ROH.KundenID_FK.

Über diese Felder können später in einer Abfrage sog. JOINS erstellt werden, sozusagen die "Schraubverbindungen" zwischen Tabellen.

Nun noch zu notwendigen Veränderung der Tabelle tbl_BestellPos_ROH:

In dieser Tabelle kommen für ein und denselben Bestell/Kaufvorgang Daten wie das Bestelldatum, die KundenID usw. x-mal vor.

Deshalb spaltet man gewöhnlich die Daten auf in eine Tabelle auf "Kopfebene" und eine auf "Positionsebene":
* tbl_BestellKopf
* tbl_BestellPosition.

Die Datenbankstruktur ist unten abgebildet, mit der in der Entwurfsansicht abgebildeten Abfrage "verbindet" man wieder alle Daten. Der SQL-Code der Abfrage lautet:
Code:
SELECT B.BestellID, B.BestellNr, B.Bestelldatum, K.Kundennummer, K.Firma,
       K.Strasse, K.PLZ, P.Pos, A.ArtBezeichnung, P.Einzelpreis, P.Stueckzahl
FROM   tbl_Kunden AS K
       INNER JOIN (tbl_Bestellkopf AS B
                   INNER JOIN (tbl_Artikel AS A
                               INNER JOIN tbl_BestellPosition AS P
                               ON A.ArtikelID = P.ArtikelID_FK)
                   ON B.BestellID = P.BestellID_FK)
       ON K.KundenID = B.KundenID_FK;

_________________
Beste Grüße

tk



bez_abfrage.JPG
 Beschreibung:
 Dateigröße:  87.28 KB
 Angeschaut:  725 mal

bez_abfrage.JPG


KlausMz
Moderator Access


Verfasst am:
30. Nov 2009, 17:15
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Allgemeine Frage zum Tabellenaufbau n zu m - AW: Allgemeine Frage zum Tabellenaufbau n zu m

Nach oben
       Version: Office 2003

@TK6
ich kann eigentlich keinen Unterschied erkennen, zwischen dem Vorschlag von A* und Deinem Vorschlag. Auch Du verwendest ja die Zwischentabelle zur Auflösung einer n:m Beziehung.

PS:
Ich möchte meine Anmerkung ausdrücklich als ernstgemeinte Frage und sachliche Rückfrage betrachtet haben. Mit Smile Laughing

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
tk6
SAP-Consultant


Verfasst am:
30. Nov 2009, 17:21
Rufname:

AW: Allgemeine Frage zum Tabellenaufbau n zu m - AW: Allgemeine Frage zum Tabellenaufbau n zu m

Nach oben
       Version: Office 2003

Da gebe ich dir 100% recht, Klaus, und ich habe ja auch A*'s Herangehenweise in einem sehr wichtigen Punkt ausdrücklich positiv hervorgehoben. Ich finde es nur so, wie ich es angehe, nochmal ein Stück verständlicher. Vielleicht ergänzt A* das irgendwann in seinem Tutorial...

Und unter uns: So wahnsinnig viel Mühe steckt ja nicht dahinter, wenn man ein paar Tabellen aufzählt und einen Link dazu setzt... Wink

Im Interesse von Gerold sollten wir diese Diskussion aber vielleicht unter Datenmodell entwickeln: Welche Tabellen und Beziehungen? fortsetzen.

_________________
Beste Grüße

tk
gerold1985
Im Profil kannst Du frei den Rang ändern


Verfasst am:
30. Nov 2009, 18:54
Rufname:

AW: Allgemeine Frage zum Tabellenaufbau n zu m - AW: Allgemeine Frage zum Tabellenaufbau n zu m

Nach oben
       Version: Office 2003

Danke schonmal für die vielen Antworten, ihr konntet mich schon ein Stück weiterbringen Smile

Doch das mit dem Kunde und der Produkte war nur ein Beispiel. Da geht ihr schon zuweit ins deteil ;)
ich nehme mal ein anderes Beispiel was vllt besser ausdrückt was ich meine!

Also eig. geht es um eine Eingabemaske, die es bisher nur in Papierform gab.
Diese soll ich nun in ein DatenbankFormular umwandeln.

Also als Bsp werden folgende eingaben gemacht:

Peter isst 4 Äpfel udn 2 Bananen
Bernd isst 3 Äpfel und 4 Bananen

die einfache Methode die ich nich anweden möchte wäre:

Name--Äpfel--Bananen
Peter -- 4 --2
Berndt-- 3-- 4

Nun so wie ichs gerne haben würde:

name -- Frucht -- Anzahl

Peter -- Äpfel -- 4
Peter -- Bananen -- 2
Berndt -- Äpfel -- 3
Berndt -- Bananen 4

Doch da die Früchte in diesem Fall immer gleichbleiben, hab ich natürlich keine Lust bei jeder neuen Person wieder in der Frucht Spalte erneut alle Früchte aufzulisten.(Was bei Methode 1 ja nicht nötig ist da die Spaltennamen schon so heissen) und genau da liegt mein Problem.

Ich könnte vorher eine Tabelle tbl_Früchte_und_Menge anlegen und dort die Spalte Früchte mit 1. Äpfel und 2. Bananen füllen, doch das würde mir nur für die erste Person die ich eintrage weiterhelfen!

Ich könnte per vba code wenn eine neue Person angelegt wird automatisch das feld "Früchte" mit 1. Äpfel und 2. Banane füllen! Aber ich denke/hoffe da gibts noch eine besser Möglichkeit!?

Ich hoffe ihr versteht ungefär was ich zu sagen versuche ;)

danke schonmal für alle Antworten

MfG Gerold
KlausMz
Moderator Access


Verfasst am:
30. Nov 2009, 19:46
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Allgemeine Frage zum Tabellenaufbau n zu m - AW: Allgemeine Frage zum Tabellenaufbau n zu m

Nach oben
       Version: Office 2003

Hallo,
ich beschäftige mich grundsätzlich nicht mit irgentwelchen fiktiven abstrakten Beispielen. Es gab hier schon mal einen der von Eiern sprach, am Schluss waren es Aktienkurse.
Mache Deine Problembeschreibung am realen Projekt fest.
Im übrigen passen die gemachten Vorschläge auch zu Deiner neuen Beschreibung.
Du brauchst mit dem von Dir angeführten Beispiel 3 Tabellen.

tblNamen (NameID, Nachname)
tblFrüchte (FruchtID, Fruchtname)
tblNamenFrüchte (NameFruchtID, NameID_F, FruchtID_F, Menge)

Tabelle 3 ermöglichst erst die Erstellung einer n:m Beziehung. Eine n:m Beziehung sind 2 1:n Beziehungen. Es ist nicht möglich, mit 2 Tabellen eine n:m Beziehung aufzubauen.

Wenn Du weitere Ratschläge haben willst, schildere das reale Problem, bzw. das reale Vorhaben.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
tk6
SAP-Consultant


Verfasst am:
30. Nov 2009, 19:52
Rufname:


AW: Allgemeine Frage zum Tabellenaufbau n zu m - AW: Allgemeine Frage zum Tabellenaufbau n zu m

Nach oben
       Version: Office 2003

tk6 am 30. Nov 2009 um 18:48 hat folgendes geschrieben:
Und deswegen spaltest du es ja in zwei Tabellen auf, die eine enthält den Bezug zu den Kundendaten durch die KundenID, die andere die Daten der einzelnen Positionen des Kaufs,bei dir Äpfel, Birnen usw. Die Eingabe erfolgt dann in einem Formular, das als Hauptformular mit Unterformular eingerichtet ist. Hier gibt man dann - genau wie du es machen willst - die Daten, die für alle Positionen des Kaufs gelten, in das Hauptformular ein, alle weiteren Daten in das Unterformular. Dabei kann man es so einrichten, daß das Unterformular nur aus einem Feld besteht und dieses sofort wieder leer wird, wenn man auf <Enter> drückt. Dann kannst du dort ruck-zuck deine Äpfel und Birnen eingeben.

Dem Begehren von Klaus schließe ich mich an: "Fremde" Beispiele können helfen, wenn man ein allgemeines Prinzip erläutern möchte, aber in der Regel können wir hier besser helfen, wenn was konkretes vorliegt.

_________________
Beste Grüße

tk
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: parameterabfrage-fenster zu klein 16 skater2301 1110 26. Apr 2007, 22:10
skater2301 parameterabfrage-fenster zu klein
Keine neuen Beiträge Access Tabellen & Abfragen: Frage zu INSERT INTO 3 Silly14 591 13. März 2007, 17:04
Thomas2007 Frage zu INSERT INTO
Keine neuen Beiträge Access Tabellen & Abfragen: Frage zu Anfügeabfrage zweier Datenbanken 2 Mascar 715 28. Jan 2007, 20:54
Gast Frage zu Anfügeabfrage zweier Datenbanken
Keine neuen Beiträge Access Tabellen & Abfragen: Hinzufügen von Tabellen ID zu Abfrage 3 Sancha 809 05. Sep 2006, 16:08
stpimi Hinzufügen von Tabellen ID zu Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Datums frage 8 Yortu 599 08. Aug 2006, 14:24
Gast Datums frage
Keine neuen Beiträge Access Tabellen & Abfragen: Frage zu "Tabellen anzeige Script" 2 Max.B 608 12. Jul 2006, 17:53
Willi Wipp Frage zu "Tabellen anzeige Script"
Keine neuen Beiträge Access Tabellen & Abfragen: 'toter' Verweis (Ganz doofe Frage sicherlich....) 1 Gast 609 04. Jul 2006, 19:17
rita2008 'toter' Verweis (Ganz doofe Frage sicherlich....)
Keine neuen Beiträge Access Tabellen & Abfragen: Frage zum Theme AutoWert 15 TorstenErd 1402 25. Apr 2006, 11:41
Nouba Frage zum Theme AutoWert
Keine neuen Beiträge Access Tabellen & Abfragen: Summen von Spalten ala Sql Server(Experten Frage) 5 Gast 1459 13. Dez 2005, 18:54
Willi Wipp Summen von Spalten ala Sql Server(Experten Frage)
Keine neuen Beiträge Access Tabellen & Abfragen: Frage zu "gesperrter" Tabelle 2 blicki 684 23. Nov 2005, 08:41
blicki Frage zu "gesperrter" Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: Frage zu eingebundenen Tabellen. 6 Gast 1725 24. Okt 2005, 15:28
Willi Wipp Frage zu eingebundenen Tabellen.
Keine neuen Beiträge Access Tabellen & Abfragen: Neu hier - Frage zu tabellenerstellung 1 quinoman 690 22. Jul 2005, 16:45
jens05 Neu hier - Frage zu tabellenerstellung
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: PHP JavaScript