![]() |
AW: Sinnvoller aufbau einer DB
Zitat:
|
AW: Sinnvoller aufbau einer DB
Vielen Dank für diese äußerst konstruktive Kritik.
Werde mich bemühen alles zu beherzigen. Zitat:
Zitat:
Aus dem Begriff Kunde sollte besser Projekt werden. Da es beim gleichen Kunde mehrer Projekte geben kann. In der wt_time_sub gibt es mehrere Einträge die sich auf den gleichen Tag, den gleichen MA und das gleiche Projekt beziehen. Daher nur der Verweis auf die wt_time_main (ist auch ein ungünstiger Name für diese Tabelle.) Ich bin da Gedanklich wahrscheinlich schon wieder zu weit... Ich hatte ja geschrieben das ich erstmal nur den monatlichen Stundenreport umsetzen will, aber habe schon die Serviceberichte mit im Hinterkopf. Da muss ich mir jetzt nochmal Gedanken machen ob ich das alles zusammenpacke oder ob ich hier eher getrennte Bereiche machen will. Wahrscheinlich deutlich einfacher und weniger komplex, aber dafür in gewissen Bereichen Redundant... :freak: |
AW: Sinnvoller aufbau einer DB
Zitat:
Weiterhin besteht dann die Möglichkeit über Zeiträume Abfragen zu gestalten. "Was haben wir am 31.02.2056 gemacht?" Gruß K-H |
AW: Sinnvoller aufbau einer DB
Hallo,
ich handhabe das so: Ein PK hat erst mal nichts mit den Daten der Tabelle zu tun, erst ist also ein artificial key (künstlicher Schlüssel). Dass kann ein Integer (AutoInc) oder eine GUID sein. Vorteil: Der Kunde sagt: "Das Feld kann nie und nimmer doppelte Werte haben", z.B. Rechnungsnummer -> mein PK Der Kunde sagt 2 Jahre später "Die Rechnungsnummer kann jetzt doppelt sein, weil die Standortnummer zusätzlich dazukommt. Wir nennen das jetzt zusammengesetzte Rechnungsnummer." Merke: Glaube keinen Kunden ;) |
AW: Sinnvoller aufbau einer DB
In den meisten Wawi ist die Rechnungsnummer ein Freitextfeld. Dieses wird z.B. über Generatoren und/oder Trigger bei neuen Belegen befüllt. Viele Firmen führen in ihren Rechnungsnummern z.B. auch das Geschäftsjahr. Daher sollte man hier nicht auf die Idee kommen und die Rechnungsnummer durch Schlüsselverkettungen aus verschiedenen Tabellen zu verketten. Denn sobald mal jemand auf die Idee kommt, den Nummernkreis zu ändern ohne das Geschäftsjahr mit zu ändern, hat man genau den Fall der doppelten Belegnummern.
Vielmehr sollte man die in einer Belegtabelle als Freitextfeld anlegen. Auf dieses Feld dann einen Unique-Constraint zu legen kann aber sinnvoll sein. Muss man dann aber auch entsprechend abfangen um im Realbetrieb genau die Fälle abzudecken wo der Anwender Mist baut. |
AW: Sinnvoller aufbau einer DB
Hallo,
das mit der Rechnungsnummer war nur ein konstruiertes Beispiel. Mir ging es hier eher darum, dass man als PK wirklich einen künstlichen Schlüssel nimmt, der mit den eigentlichen Daten nichts zu tun hat. Sollte ein "richtiges" Feld eindeutig sein müssen, bekommt man das auf DB-Seite locker über einen zusätzlichen Unique-Index hin. |
AW: Sinnvoller aufbau einer DB
Zitat:
|
AW: Sinnvoller aufbau einer DB
Zitat:
Gruß K-H P.S. Das gilt auch für die Einsparug des PK in einigen Tabellen. |
AW: Sinnvoller aufbau einer DB
Hallo,
Zitat:
"Das war mein Vorgänger." "Das machen wir immer so." :) Zitat:
Platzprobleme auf der Festplatte Connor 170 MB? |
AW: Sinnvoller aufbau einer DB
Zitat:
Connor kenne ich auch noch. Ich weiß noch, wie ich zig 3,5" Disketten in der Hand hatte um Novel Netware auf einem 486 mit 'ner Connor zu installieren... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz