![]() |
AW: Datenbankmodellierung
Das ist wohl richtig, aber das sind im Regelfall doch auch Daten, die sich eben nicht weiter Normalisieren lassen.
|
AW: Datenbankmodellierung
Wenn Du mehrere Tabellen für das gleiche anlegst würde ich auch nicht von Normalisierung reden. Kaetegorien sind Kategorien, ob sie nun Haupt- oder Unterkategorien sind.
|
AW: Datenbankmodellierung
Ich hatte auch mehr etwas im Kopf wie: Auftrag (Hauptkategorie), Auftragsposition (Kategorie), Auftragsunterposition (Unterkategorie). So wäre es nach seinem Beispiel, zumindest für mich.
|
AW: Datenbankmodellierung
Auftragspositionen und Auftragsunterpositionen sind eigentlich das gleiche, der Fremdschlüssel steuert dies ja.
Aufträge sind natürlich etwas komplett anderes. Ich würde eher eine Tabelle für Aufträge, Lieferscheine, Rechnungen usw. verwenden und eine für die Positionen. |
AW: Datenbankmodellierung
Hm... ich finde den Ansatz wirklich interessant. Nun kenne ich auch noch nicht so viele... Bei uns haben wir das alles ausgelagert in eigene Tabellen, um eben alles zu trennen. Käme alles in eine Tabelle würdest du dann einen Typen einfügen? Muss ja, sonst kann man das nicht unterscheiden, um was für einen Belegtypen es sich handelt. Und darauf dann einen Index... Klar geht das, aber habe noch nicht so ganz verstanden warum? Was macht das "besser" als es zu trennen, bzw. zu normalisieren?
Aber wir driften auch weiter vom Ursprungsthema ab. LG |
AW: Datenbankmodellierung
Zitat:
Und das Modell des TE finde ich bezüglich der Kategorien nicht sehr klar. Ich sehe das so wie mkinzler und codehunter, ein Parentverweis für eine hierarchische Kategorisierung ist idR naheliegend und kein Normalformverstoß. Selbst wenn er das wäre, sowas wäre auch nicht selten und m.E. nicht per se strafbar. Frage wäre immer, welche Vor und Nachteile aus bestimmten Verfahren entstehen. 10 Tabellen für verschiedene Ebenen halte ich dagegen schon für fragwürdig. Wer oder was auch immer einen solchen Kategorieverweis bei sich trägt, ist per Model darauf festgenagelt. Also quasi wie in einem Kastensystem, frühstens nach Tod und Wiedergeburt gibt's einen anderen Level. Nicht sehr flexibel. Was die Performanceaspekte angeht: Performanceprobleme kann es immer geben, natürlich gern wenn Tabellen sehr groß werden. In solchen Fällen kann man über Denormalisierung nachdenken, aber immer zuletzt. Gute Indizierung, geeignete Datenbanken mit smarter Implementierung und intelligenter Abfragesyntax wären da für mich naheliegender. |
AW: Datenbankmodellierung
Zitat:
Ich stehe momentan wirklich auf dem Schlauch... Es ist mir erklärlich, weshalb ich alles in eine Tabelle packen sollte. Die würde dann ja irgendwie so aussehen:
Sowohl Parent als auch Child würden dann NULL-Werte enthalten, was für Abfragen doch absolut unsinnig wäre. Man bräuchte dann ja mindestens noch einen Typen um festzulegen ob es eine Main-, Kategorie oder Subkategorie ist. Dann würde es wieder gehen... Aber hübsch ist das doch niemals. LG |
AW: Datenbankmodellierung
Zitat:
Zitat:
Und Warum sollte eine System mit den Tabellen 'Order', 'DeliveryNote', 'Invoice', ..., 'OrderPosition', 'DeliveryPosition', 'InvoicePosition', ... normalisierter sein als ein System mit den Tabellen 'ReceiptType', 'Receipe', 'Position'? Wenn jetzt später ein neuer Belegtyp z.B. Bearbeitungslaufzettel benötigt wird musst du im 1. Fall das komplette Modell erweitern und auch das Programm anpassen; im 2. Fall wird einfach ein neuer Datensatz in 'ReceiptType' eingefügt. |
AW: Datenbankmodellierung
Zitat:
|
AW: Datenbankmodellierung
Zitat:
Zitat:
LG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 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 by Thomas Breitkreuz