AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Datenbankmodellierung

Ein Thema von Asura · begonnen am 12. Apr 2018 · letzter Beitrag vom 16. Apr 2018
Antwort Antwort
Seite 2 von 6     12 34     Letzte » 
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
38.761 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#11

AW: Datenbankmodellierung

  Alt 13. Apr 2018, 10:17
Und bei 10 Hierarchie-Ebenen dann 10 Tabellen?
Ich würde es auch mit einet Tabelle lösen.
Markus Kinzler
  Mit Zitat antworten Zitat
StepByStep

Registriert seit: 12. Nov 2014
Ort: Schleswig-Holstein
61 Beiträge
 
Delphi 7 Professional
 
#12

AW: Datenbankmodellierung

  Alt 13. Apr 2018, 10:28
Ja, bei 10 Hierarchie-Ebenen dann 10 Tabellen. Es ist doch auch in Bezug auf Abfragen viel effizienter/performanter schmalere Tabellen zu haben, statt einer riesigen, mal davon ab, dass man somit keine Normalisierung erreicht. Aber eben diese sollte man doch anstreben oder irre ich mich?

Die Berufsschule ist knapp ein Jahr her, aber ich bin ziemlich sicher, dass das dort vermittelt wird und überall sonst auch angestrebt wird.

LG
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
1.554 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#13

AW: Datenbankmodellierung

  Alt 13. Apr 2018, 10:30
Und bei 10 Hierarchie-Ebenen dann 10 Tabellen?
Ich würde es auch mit einet Tabelle lösen.
Kommt ja immer auf den konkreten Fall an. Mir sagt halt meine praktische Erfahrung, dass starre hierarchische Strukturen von den meisten Anwendern als negativ empfunden werden. Man stelle sich einen Webshop vor, der eine starre Verzweigungstiefe hätte. In manchen Kategorien lägen dann Berge von Artikeln, in anderen nur einer oder zwei. Wenn die Kategorien funktional identisch und ihre Unterschiede über Attribute darstellbar sind, würde ich sie in einer Tabelle unterbringen, wie vormals geschrieben. Unterscheiden sie sich jedoch funktional stark und gibt es keine sinnvolle abweichende Verzweigungstiefe, dann kann man das auch mit drei Tabellen lösen.

EDIT/Nachtrag:

Ja, bei 10 Hierarchie-Ebenen dann 10 Tabellen. Es ist doch auch in Bezug auf Abfragen viel effizienter/performanter schmalere Tabellen zu haben, statt einer riesigen, mal davon ab, dass man somit keine Normalisierung erreicht. Aber eben diese sollte man doch anstreben oder irre ich mich?

Die Berufsschule ist knapp ein Jahr her, aber ich bin ziemlich sicher, dass das dort vermittelt wird und überall sonst auch angestrebt wird.
Theorie und Praxis eben. Kann der Anwender Kategoriestrukturen dynamisch selbst erstellen, deshalb mein Beispiel Webshop, dann müsstest du auch die Tabellen dynamisch erstellen. Das wird IMHO recht aufwendig und fehleranfällig, spätestens bei Programmupdates.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber.

Geändert von Codehunter (13. Apr 2018 um 10:36 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
38.761 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#14

AW: Datenbankmodellierung

  Alt 13. Apr 2018, 10:34
Oder in einer. Da ja die Hierarchie Teil der Tabelle ist. Im Nornallfall unterscheiden sich die Metadaten der Haupt-/Unter-/Unter-Unterkategorien ja nicht. Die oberste Ebene hat dann halt keine Parent.
Markus Kinzler
  Mit Zitat antworten Zitat
StepByStep

Registriert seit: 12. Nov 2014
Ort: Schleswig-Holstein
61 Beiträge
 
Delphi 7 Professional
 
#15

AW: Datenbankmodellierung

  Alt 13. Apr 2018, 10:42
Zitat:
Die oberste Ebene hat dann halt keine Parent.
>> Dann hast du eine Spalte die nur in 2 von 3 Fällen gefüllt ist? Ist das konsistent?

EDIT:

Zitat:
deshalb mein Beispiel Webshop
Aber in deinem Beispiel wäre es sowieso sinnvoller eine Artikeltabelle zu erstellen und darin eine Referenzspalte zu Kategorien einzubauen.
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
1.554 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#16

AW: Datenbankmodellierung

  Alt 13. Apr 2018, 10:44
Zumal im Bereich von Buchhaltung und Warenwirtschaften die GoBD sowieso die Normalisierung ein Stück weit gekillt hat

@StepByStep: Bzgl. Normalisierung und Performance, da kann der Schuss auch nach hinten los gehen. Ich empfehle die letzten beiden Absätze auf dieser Seite.

EDIT:
Zitat:
deshalb mein Beispiel Webshop
Aber in deinem Beispiel wäre es sowieso sinnvoller eine Artikeltabelle zu erstellen und darin eine Referenzspalte zu Kategorien einzubauen.
Also bitte.... Wo ist denn da die dritte Normalform? Da wird bei den Artikeln eine Artikelnummer, bei den Kategorien eine Kategorienummer und dann in einer Verknüpfungstabelle beides zusammen geführt. Nur so kannst du einen Artikel in mehrere Kategorien legen.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber.

Geändert von Codehunter (13. Apr 2018 um 10:47 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
38.761 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#17

AW: Datenbankmodellierung

  Alt 13. Apr 2018, 10:44
Warum nicht. Ist bei den anderen Tabellen gibt es ja auch hin und wieder Felder die nicht gefüllt sind.
So wäre es auch einfacher aus einer Haupt- eine Subkategorie zu machen oder umgekehrt oder die übergeordnete zu ändern.
Markus Kinzler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
38.761 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#18

AW: Datenbankmodellierung

  Alt 13. Apr 2018, 10:46
Ich sehe auch nicht, warum dies der Normalisierung widersprechen sollte. Diese fordert ja nur eine Abhängigkeit von den Nichtschlüsselfeldern vom (Primär)Schlüssel. ParentID ist ja aber ein (Fremd-)schlüssel.
Markus Kinzler
  Mit Zitat antworten Zitat
StepByStep

Registriert seit: 12. Nov 2014
Ort: Schleswig-Holstein
61 Beiträge
 
Delphi 7 Professional
 
#19

AW: Datenbankmodellierung

  Alt 13. Apr 2018, 11:04
Zitat:
Also bitte.... Wo ist denn da die dritte Normalform? Da wird bei den Artikeln eine Artikelnummer, bei den Kategorien eine Kategorienummer und dann in einer Verknüpfungstabelle beides zusammen geführt. Nur so kannst du einen Artikel in mehrere Kategorien legen.
>> Verzeih, da hast du natürlich vollkommen Recht! Mein Fehler.

Zitat:
Zudem verlangsamt es die Abfragegeschwindigkeit, da die Tabellen erst mithilfe von Joins verknüpft werden müssen
>> Also ich möchte meinen, dass Joins über Tabellen schneller gehen, als ein Select über eine Tabelle mit etlichen Massendaten. Vor allem wenn du dann noch sinnvolle Indizes angelegt hast.

Zitat:
Warum nicht. Ist bei den anderen Tabellen gibt es ja auch hin und wieder Felder die nicht gefüllt sind.
So wäre es auch einfacher aus einer Haupt- eine Subkategorie zu machen oder umgekehrt oder die übergeordnete zu ändern.
>> Mag sein, aber du hättest dann eine riesige Tabelle mit zig Daten. Das kann doch nicht gut sein. Und durch eine Tabelle trennst du ja nicht Nicht-Schlüsselfelder. Dann hättest du Name für Subkategorien und Name für Hauptkategorien...

LG
Jan
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
38.761 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#20

AW: Datenbankmodellierung

  Alt 13. Apr 2018, 11:10
Zitat:
>> Also ich möchte meinen, dass Joins über Tabellen schneller gehen, als ein Select über eine Tabelle mit etlichen Massendaten. Vor allem wenn du dann noch sinnvolle Indizes angelegt hast.
Joins ist Joins, ob nun verschiedene Tabellen oder mehfach die selbe gejoint wird. Ausserdem ist ja die Frage, warum überhaupt gejoint werden muss.

Zitat:
>> Mag sein, aber du hättest dann eine riesige Tabelle mit zig Daten. Das kann doch nicht gut sein. Und durch eine Tabelle trennst du ja nicht Nicht-Schlüsselfelder. Dann hättest du Name für Subkategorien und Name für Hauptkategorien...
Ist das bei einer Adressen- oder Rechnungspositionentabelle anders? Da hat man auch viele verschiedene Daten beinhalten.
Markus Kinzler
  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:

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