Forum: Datenbanken
by Olli73,
22. Mai 2017
Bei einer 1:n-Beziehung Adressen -> Anschriften sollte aber (i.d.R.) die Anschrift auch ein Namensfeld beinhalten, da die entsprechenden Anschriften nicht unbedingt den Kundennamen haben.
Außerdem muss er zusätzlich im Angebot die Anschriften-ID für Liefer- und Rechnungsanschrift speichern, da es ja mehrere geben kann und der User die richtige auswählen muss.
Forum: Datenbanken
by Olli73,
18. Mai 2017
Sieht auf den ersten Blick ganz gut aus. Nur die Einheiten hast du glaube ich noch nicht verwendet. Die müssten mindestens in die Produkttabelle.
Forum: Datenbanken
by Olli73,
18. Mai 2017
Zu 1: Und das Feld KundenId ist dann die KundenNr? Dann hat mich nur die Bezeichnung verwirrt.
Zu 2: Bezeichnung in Angebot benötigst du nur, wenn das ganze Angebot eine Bezeichnung bekommen soll (evtl. gar nicht so dumm). Sei es um dem User anzuzeigen um was es sich bei dem Angebot handelt oder um anstatt der Überschrift "Angebot" z.B. "Angebot für ..." beim Drucken anzuzeigen....
Forum: Datenbanken
by Olli73,
18. Mai 2017
Also benötigst du entweder eine Tabelle Preise oder musst die Tabelle Positionen um die Felder Preis, Artikelbezeichnung etc. erweitern. Das kannst du ja jetzt in dein Datenmodell einbauen und dann können wir weitersehen was noch fehlt bzw. falsch ist.
Übrigens: Die Felder KundenPK und KundenId verwirren mich. Du solltest eine ID als PrimaryKey haben (das nennst du dann KundenPK oder KundenID)...
Forum: Datenbanken
by Olli73,
18. Mai 2017
Das musst/solltest du aber jetzt schon beim Datenbankdesign berücksichtigen, also welche Felder/Tabellen du dann dafür benötigst.
Version 1 würde ich (wenn überhaupt) nur nehmen, wenn sich die Preise fast nie ändern. Wenn du z.B. später wissen willst, wie oft sich ein Produkt verkauft, macht das die Abfrage deutlich schwieriger.
Forum: Datenbanken
by Olli73,
18. Mai 2017
Mal eine weitere Frage: Wie willst du z.B. bei Preisänderungen reagieren? So wie dein Datenmodell jetzt ist, würde eine Preisänderung die alten Angebote verändern.
Lösungsmöglichkeiten:
- Du lässt eine Änderung der Artikel nicht zu. Ggf. muss dann der alte Artikel auf inaktiv (Statusfeld) gesetzt werden und ein neuer Artikel angelegt werden.
- Du rückst etwas von der Normalform ab und...