Delphi-PRAXiS
Seite 2 von 6     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Wieder mal die Tabellenstrukturen (https://www.delphipraxis.net/192769-wieder-mal-die-tabellenstrukturen.html)

stOrM 18. Mai 2017 12:53

AW: Wieder mal die Tabellenstrukturen
 
Zitat:

Zitat von Olli73 (Beitrag 1371892)
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!

Olli73 18. Mai 2017 13:02

AW: Wieder mal die Tabellenstrukturen
 
Zitat:

Zitat von stOrM (Beitrag 1371899)
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.

stOrM 18. Mai 2017 13:06

AW: Wieder mal die Tabellenstrukturen
 
Zitat:

Zitat von Olli73 (Beitrag 1371902)
Zitat:

Zitat von stOrM (Beitrag 1371899)
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.

Olli73 18. Mai 2017 13:15

AW: Wieder mal die Tabellenstrukturen
 
Zitat:

Zitat von stOrM (Beitrag 1371904)
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.

mikhal 18. Mai 2017 13:27

AW: Wieder mal die Tabellenstrukturen
 
Liste der Anhänge anzeigen (Anzahl: 2)
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

stOrM 18. Mai 2017 13:28

AW: Wieder mal die Tabellenstrukturen
 
Zitat:

Zitat von Olli73 (Beitrag 1371905)
Zitat:

Zitat von stOrM (Beitrag 1371904)
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?:oops:

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...

Olli73 18. Mai 2017 13:42

AW: Wieder mal die Tabellenstrukturen
 
Zitat:

Zitat von stOrM (Beitrag 1371907)
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?:oops:

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.

stOrM 18. Mai 2017 13:47

AW: Wieder mal die Tabellenstrukturen
 
Zitat:

Zitat von Olli73 (Beitrag 1371910)
Zitat:

Zitat von stOrM (Beitrag 1371907)
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?:oops:

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.

stOrM 18. Mai 2017 13:53

AW: Wieder mal die Tabellenstrukturen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Schau mal bitte Olli, neue Struktur.

p80286 18. Mai 2017 14:06

AW: Wieder mal die Tabellenstrukturen
 
Zitat:

Zitat von stOrM (Beitrag 1371904)
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:36 Uhr.
Seite 2 von 6     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz