AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Wieder mal die Tabellenstrukturen

Wieder mal die Tabellenstrukturen

Ein Thema von stOrM · begonnen am 18. Mai 2017 · letzter Beitrag vom 23. Mai 2017
Antwort Antwort
Seite 2 von 6     12 34     Letzte » 
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Duisburg
402 Beiträge
 
Delphi 10 Seattle Architect
 
#11

AW: Wieder mal die Tabellenstrukturen

  Alt 18. Mai 2017, 12:53
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 übernimmst Felder wie Preis, Artikelbezeichnung etc. mit in die Position (als "Kopie"). Da könnte man es (sofern gewünscht) sogar ermöglichen, dass der Nutzer einen individuellen Preis eintippt.

- Du machst noch eine Tabelle Preise mit Von-Datum, Bis-Datum, Preis.
Guter Einwand, aber Du siehst ja das ich komplett am Anfang stehe damit, deshalb könnte ich, selbst wenn ich wollte Dir deine Frage nicht beantworten.
Wir fangen ja erstmal an die Tabellen zu gestalten und die benötigten Felder in die richtigen Tabellen einzuordnen. Wenn es um spezifische Fragen geht bin ich da der falsche Ansprechpartner.

Aber ich denke auch, so wie Du geschrieben hast, dass ich Variante 1 nehmen würde jetzt so rein vom Gefühl her, also neuen Artikel anlegen, danke für die Anregung!
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
386 Beiträge
 
#12

AW: Wieder mal die Tabellenstrukturen

  Alt 18. Mai 2017, 13:02
Guter Einwand, aber Du siehst ja das ich komplett am Anfang stehe damit, deshalb könnte ich, selbst wenn ich wollte Dir deine Frage nicht beantworten.
Wir fangen ja erstmal an die Tabellen zu gestalten und die benötigten Felder in die richtigen Tabellen einzuordnen. Wenn es um spezifische Fragen geht bin ich da der falsche Ansprechpartner.
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.
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Duisburg
402 Beiträge
 
Delphi 10 Seattle Architect
 
#13

AW: Wieder mal die Tabellenstrukturen

  Alt 18. Mai 2017, 13:06
Guter Einwand, aber Du siehst ja das ich komplett am Anfang stehe damit, deshalb könnte ich, selbst wenn ich wollte Dir deine Frage nicht beantworten.
Wir fangen ja erstmal an die Tabellen zu gestalten und die benötigten Felder in die richtigen Tabellen einzuordnen. Wenn es um spezifische Fragen geht bin ich da der falsche Ansprechpartner.
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.
Das Problem ist doch das ich es nicht weiß wie die Tabellen richtig gestaltet werden müssen, wenn ich das wüsste könnte ich das ja berücksichtigen.
Also fällt wohl Variante 1 raus, die Preise können sich täglich ändern.
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
386 Beiträge
 
#14

AW: Wieder mal die Tabellenstrukturen

  Alt 18. Mai 2017, 13:15
Das Problem ist doch das ich es nicht weiß wie die Tabellen richtig gestaltet werden müssen, wenn ich das wüsste könnte ich das ja berücksichtigen.
Also fällt wohl Variante 1 raus, die Preise können sich täglich ändern.
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) und ein Feld KundenNr.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
749 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#15

AW: Wieder mal die Tabellenstrukturen

  Alt 18. Mai 2017, 13:27
Ich habe da mal ein - bewusst flachgehaltenes - Datenmodell als Bild angehängt. Alle Tabellenfelder haben einen eindeutigen Präfix, macht später die Zuordnung in den Joins einfacher und auch die Identifizierung - woher kommt das Feld...

Die Angebotspositionen nehmen den Preis auf, eine Änderung des Preises in der Preistabelle wird sich dann nicht auf das Angebot auswirken. Darüber hinaus habe ich in der Preistabelle die Möglichkeit geschaffen, einen Gültigkeitszeitraum für den Preis zu definieren.

Die Anschrift besitzt ein Feld Anschrifttyp, der als SmallInt definiert ist (1=Lieferadresse, 2=Rechnungsadresse, 3=abweichende Lieferadresse...), kann man auch über eine Nachschlagetabelle realisieren.

Insgesamt habe ich das Modell flach gehalten und nur die rudimentären Datenfelder erfasst.

Es ist ein Einstieg, bei weitem nicht perfekt und zur Diskussion gestellt. Das Script zur Generierung einer Firebird-Datenbank liegt bei...

Grüße
Mikhal
Miniaturansicht angehängter Grafiken
angebote.jpg  
Angehängte Dateien
Dateityp: 7z Angebote.7z (1,3 KB, 4x aufgerufen)
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Duisburg
402 Beiträge
 
Delphi 10 Seattle Architect
 
#16

AW: Wieder mal die Tabellenstrukturen

  Alt 18. Mai 2017, 13:28
Das Problem ist doch das ich es nicht weiß wie die Tabellen richtig gestaltet werden müssen, wenn ich das wüsste könnte ich das ja berücksichtigen.
Also fällt wohl Variante 1 raus, die Preise können sich täglich ändern.
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) und ein Feld KundenNr.
Können wir das mal Schritt für Schritt durchgehen bitte?

1. Also die Felder wie z.B. KundenPK (ist für mich als Stütze gedacht, ist also die ID aus der Tabelle Kunden und ist Primary Key, so hab ich das definiert in der Tabelle)
2. In Angebote gibt es zum jetzigen Zeitpunkt

Ein Feld, Bezeichnung

Ich wiederhole das kommt da jetzt raus und in die Tabelle Positionen rein, sowie auch Artikelbezeichnung (was im Moment in Tabelle Produkte gewesen wäre, dass kommt da jetzt auch weg?
Dort gibt es noch ein Preis Feld das kommt nun auch in Positionen?

Hab ich was vergessen?

Danke Mikhal,
dann warte ich jetzt erstmal bevor ich zum 10x alles umbaue, falls jemandem noch etwas dazu einfällt

Frage Mikhal,
ich hab mir mal das SQL Script angesehen...
Generatoren? Ich bin mir nicht sicher, aber so etwas gibt es nicht in MySql? Hab ich zumindest nicht gefunden ich glaub das geht nur über schräge Umwege....
Ich vermute mal das ich das dann über Delphi lösen müsste irgendwie...

Geändert von stOrM (18. Mai 2017 um 13:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
386 Beiträge
 
#17

AW: Wieder mal die Tabellenstrukturen

  Alt 18. Mai 2017, 13:42
Können wir das mal Schritt für Schritt durchgehen bitte?

1. Also die Felder wie z.B. KundenPK (ist für mich als Stütze gedacht, ist also die ID aus der Tabelle Kunden und ist Primary Key, so hab ich das definiert in der Tabelle)
2. In Angebote gibt es zum jetzigen Zeitpunkt

Ein Feld, Bezeichnung

Ich wiederhole das kommt da jetzt raus und in die Tabelle Positionen rein, sowie auch Artikelbezeichnung (was im Moment in Tabelle Produkte gewesen wäre, dass kommt da jetzt auch weg?
Dort gibt es noch ein Preis Feld das kommt nun auch in Positionen?

Hab ich was vergessen?
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.
Artikelbezeichnung, Preis etc. verbleiben in der Tabelle Artikel/Produkte und werden zusätzlich in die Tabelle Positionen aufgenommen.
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Duisburg
402 Beiträge
 
Delphi 10 Seattle Architect
 
#18

AW: Wieder mal die Tabellenstrukturen

  Alt 18. Mai 2017, 13:47
Können wir das mal Schritt für Schritt durchgehen bitte?

1. Also die Felder wie z.B. KundenPK (ist für mich als Stütze gedacht, ist also die ID aus der Tabelle Kunden und ist Primary Key, so hab ich das definiert in der Tabelle)
2. In Angebote gibt es zum jetzigen Zeitpunkt

Ein Feld, Bezeichnung

Ich wiederhole das kommt da jetzt raus und in die Tabelle Positionen rein, sowie auch Artikelbezeichnung (was im Moment in Tabelle Produkte gewesen wäre, dass kommt da jetzt auch weg?
Dort gibt es noch ein Preis Feld das kommt nun auch in Positionen?

Hab ich was vergessen?
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.
Artikelbezeichnung, Preis etc. verbleiben in der Tabelle Artikel/Produkte und werden zusätzlich in die Tabelle Positionen aufgenommen.
1. Ja Korrekt!
2. Oh da hab ich durch einen Zufall eine gute Idee eingebaut von der ich nicht wusste, die aber gut finde, dann lass ich die Bezeichnung da drin. ! Alles klar, bastel ich mal eben rein.
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Duisburg
402 Beiträge
 
Delphi 10 Seattle Architect
 
#19

AW: Wieder mal die Tabellenstrukturen

  Alt 18. Mai 2017, 13:53
Schau mal bitte Olli, neue Struktur.
Miniaturansicht angehängter Grafiken
neue-struktur_.png  
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
5.508 Beiträge
 
Delphi 7 Personal
 
#20

AW: Wieder mal die Tabellenstrukturen

  Alt 18. Mai 2017, 14:06
Das Problem ist doch das ich es nicht weiß wie die Tabellen richtig gestaltet werden müssen, wenn ich das wüsste könnte ich das ja berücksichtigen.
Also fällt wohl Variante 1 raus, die Preise können sich täglich ändern.
Du mußt wissen welche Daten Du benötigst, und welche sich ändern könnten etc.
Der Datenbankdesigner macht dann daraus Tabellen....

Und wenn er "AngebotsID" und "ProduktPK" fröhlich durcheinander nutzt, muß er schon ganz gut sein um das so entstandene Chaos in 3 Monaten auf den ersten Blick zu überschauen.
Aber warum einfach wenn es auch kompliziert geht. (Du bist übrigens nicht der einzige, der so arbeitet)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten
sondern Deinen Anweisungen
Do it with Delphi Programming
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2017 by Daniel R. Wolf