![]() |
AW: Datenbankmodellierung
Zu der "dynamischen" Struktur:
stell Dir vor Du sitzt im Einkauf eines Autoherstellers. neben Schrauben,Windschutzscheiben usw. bestellst Du auch Räder. Dau auf jede Felgengröße 2 Reifengrößen passen baust Du zwei Tabellen Hauptbauteil, Unterbauteil. Ob Felge oder Rad in das Hauptbauteil kommen lassen wir mal offen, Reifen kommt in das Unterbauteil. Jetzt kommt jemand auf die Idee die Felge bei einem Lieferanten zu bestellen und den Reifen beim anderen. Ist der Reifen jetzt Hauptbauteil und gleichzeitig Unterbauteil? Gruß K-H |
AW: Datenbankmodellierung
Zitat:
Ich wollte mir Zeit nehmen, um alles mir durchzulesen und zu kommentieren! Aber mit der Diskussion bin ich eindeutig überfordert :D Ich mach mich mal an die Arbeit und versuche mal die Hilfen zu Kommentieren bzw. mit weiteren Fragen zu füttern! Zitat:
Zitat:
Zitat:
Ich versuche mal meine Intention hinter dem aktuellen Aufbau zu erläutern:
Zitat:
In der Tabelle bankaccounts wäre dann mit deinem Verfahren es nicht UserID sondern Users.ID bzw. UsersID? Sprich der FK hat immer den Namen der referenzierten Tabelle als (ich nenne es mal) Pre Klausel? Zitat:
Es wird vllt hier ein paar schmerzen, aber ich finde zum Teil ist der Plural für mich Sinnhaft. Ich kann die Argumentation absolut nachvollziehen. Ich kann aber anhand des Plurals für mich schon direkt festlegen: Das ist eine Tabelle und kein Attribut und es liest und schreibt sich für mich später bei der Erstellung einfach besser, wenn ich den Plural benutze. Kann dies schwer erklären wieso das der Fall ist. Zitat:
Maincategorie: Verpflegung das umschließt die Subcategorien: Nahrung, Getränke, Tabak etc. Sprich ich kann später bei der statistischen Auswertung meiner Kontodaten mir anhand von Masken/Filter Eingaben die Ergebnisse anzeigen, die mich wirklich interessieren. Beispiel: Wie viel gebe ich im Monat nur für Nahrung aus, wie viel für Getränke etc. Zitat:
Des Weiteren wundere ich mich, dass du nach den Beziehungen fragst, da die doch in der Grafik abgebildet sind anhand den Verbindungen. Der Senkrechte Strich bedeutet eine 1 und der umgedrehte Pfeil das n. Sprich: 1:n Beziehungen habe ich dort gekennzeichnet. Zu der fortgefolgten Diskussion kann ich mich nicht zu äußern, da ich wirklich nur ein Anfänger in Sachen Datenbanken bin. Also wenn hier, vor dem Hintergrund meiner Erklärung zu den Kategorien (siehe erste Kommentierung zu der Antwort von StepByStep), mir ein passendere Modelllösung vorgeschlagen wird mit einer kleinen Erklärung weshalb, dann würde mir das sehr viel mehr helfen. Ich denke weitere Kategorisierungsmaßnahmen würden auch nicht hinzukommen da zwei Kategorien zur Gliederung eines Buchungseintrages ausreichen, um seine Funktion wiederzuspiegeln. Ich bitte vllt auch noch mal die Lösung mit Evalution näher zu begutachten. Mein Vorhaben ist hier, dass pro Bankaccount ein Bewertungssystem vergeben wird (Sprich ein Benutzer kann mehrere besitzen). Bewertungssystem sehe ich mit einer persönlichen Einschätzung über die Notwendigkeit der Buchung. Das lässt später wieder in statistischen Auswertungen heran ziehen, indem mir das Programm sagt: 25% deiner Kosten sind nach deinem Bewertungsschema wirklich notwendig (zum Beispiel 1 = sehr notwendig, 6 = unnötig / Luxus). So lässt sich leicht herausstellen: Wo habe hohe Ausgaben und wie werden diese bewertet. Im vorangegangen Beispiel: Wie notwendig sind diese Ausgaben. //Edit Ergänzend zu dem Kategorien will ich diese natürlich dem Nutzer überlassen, diese frei einzustellen und zu bearbeiten. In Verbindung mit dem Bewertungssystem kann man darüber auch nachdenken statt die Buchung als einzelnes zu bewerten mit dem Benotungssystem, eher vllt die Kategorien zu bewerten. Ein Problem sehe ich auch noch, was passiert wenn Kategorien gelöscht oder ersetzt werden. Da die Buchung ja Kategorien zugeordnet ist. |
AW: Datenbankmodellierung
Zitat:
|
AW: Datenbankmodellierung
Zitat:
Im Allgemeinen hat ein Angestellter eines Unternehmens die Berechtigung bis zu einer bestimmten Summe einen Auftrag zu zeichnen. Dieser Auftrag wird im Allg. auch nicht aus einer Laune heraus erteilt sondern steht im Normalfall im Kontext der Unternehmenspolitik. Wenn die Unternehmensführung der Meinung ist, daß Aufträge die ein Angestellter nicht unbedingt notwendig für das Unternehmen sind, wird sie dies vllt. mit Hilfe der vorhandenen Buchungsdaten belegen, aber eine Bewertung wohl nicht unbedingt in der Buchungsdatenbank ablegen. ![]() Gruß K-H |
AW: Datenbankmodellierung
Zitat:
Das Programm wird nicht in dieser Form, wie du es beschrieben hast genutzt. Mein Vorhaben ist es, dass der Nutzer seine Buchungen (Bankkontoaktivitäten) manuell einträgt oder nach weiterer Entwicklungszeit automatisch die neuesten Buchungen aus dem Online Bankkonto herunterzieht auswertet, mit den vorhanden Informationen einen Vorschlag zur Speicherung ausgibt (In Form eines ausgefüllten Formulares) und der Nutzer nur noch kleinere Einstellung (In dem Fall Bewertung und Fein-Kategorisierung) vornimmt und bestätigt. Man könnte das System als überschaubarere Bankkontoaktivitäten ansehen. Also ich speichere schlichtweg meine Buchungen auf meinen Bankkonten in eine Datenbank ab. Diese Möglichkeit öffnet mir dann die statistischen Auswertungend die sehr weit spannbar sind und von den meisten Onlinebanksystem nicht mal ansatzweise berücksichtigt werden (Stichwort: (Multi)lineares Regressionsmodell für Prognosen) bessere grafische Darstellung usw. |
AW: Datenbankmodellierung
Zitat:
Aber zurück zum Thema. Einige allgemeine Tips aus der Praxis: 1. Die Normalform ist zwar schön und gut, und sollte durchaus auch angestrebt werden. Aber in der Praxis gibts Situationen und Anforderungen, die Redundazen nicht nur angenehm sonder sogar notwendig machen. 2. Joins...sie sind angenehm für den Programmierer. Aber sie erzeugen auch u.U. sehr hohe Lasten auf der DB (und ggf. auf dem Rechner für die DB). Deshalb versuch ich sie grundsäzlich zu vermeiden. 3. Die Strukturen immer so einfach wie möglich halten. Je einfacher das Datenmodell desto leichter ist es, sie in einem Programm zu handhaben (xtCommerce ist da nicht gerade Vorreiter). |
AW: Datenbankmodellierung
Zitat:
"Angenehm" an der Redundanz ist ja höchstens, dass "man" "es" als Programmierer (scheinbar) einfacher hat. Gerade im Sinne von Punkt 3. Wirklich "notwendig" sind sie wohl eher selten. zu 2: Joins sind kein Hexenwerk. Man kann in den allermeisten Fällen durch Indexierung und meist sinnvolle Einschränkungen der betrachteten Menge auf sehr "kleine" und schnelle Selectergebnisse kommen. Ich empfehle bei dem Modellentwurf nicht auf Anzahl von Joins abzuzielen, sondern auf ein stimmiges Modell. Gerade hier in dem Thread geht es ja offensichtlich um sehr gut beherrschbare Datenmengen. 3 ist sowieso empfehlenswert. In der Praxis macht man bei der Abbildung der Wirklichkeit immer irgendwo einen Cut, ein Kompromis aus Entwicklungsaufwand und gewünschten Ergebnissen, aber auch aus dem Eingabeaufwand, den das erstellte Modell erzwingt. Wieviel Eingabemasken und Tabellen hat man schon gesehen, die aufwendig befüllt werden müssten, aber am Nutzen und Aufwand (Praktikabilität, Faulheit, Zeitdruck, ..) scheitern. |
AW: Datenbankmodellierung
Zitat:
im Auge hat. Zitat:
Fakt ist aber, das Joins eine DB (bzw. den Server) stark belassten (hinsichtlich Performance und Systemresource). Mit steigernder Nutzerzahl wird das sicher relevant. Zitat:
|
AW: Datenbankmodellierung
Ich will niemand erschlagen, also nur weiterlesen bei Interesse:
Zitat:
Du hast selbst schon das Thema Änderung von Kategorien angesprochen. Das ist immer problematisch, nicht nur aus Modellierungs und Umsetzungsaspekten. Zu einem Zeitpunkt x definierst Du ein hoffentlich sinnvolles System und alle eingehenden Buchungen erhalten einen entsprechenden Kategorie-Stempel nach Deinem aktuellen Ermessen. Sobald Du die Kategorien aber änderst, ist der Wert der alten Kategorisierungen mehr als fraglich. Es geht einfach um den Punkt: speichert man eine Interpretation der Fakten und analysiert das dann irgendwie oder speichert man erstmal nur Fakten für die spätere Analyse. Das ist m.E. ein ziemlicher Unterschied. In Deinem Fall wären es neben den Beträgen m.E. einfach die erworbenen Güter oder Leistungen. Eine Kategorisierung und eine Bewertung wären durch einen separaten Prozess und Datenspeicher zu bewerkstelligen. Ist das Problem klar, kann man natürlich hergehen und beides parallel Speichern, Fakten und (subjektive Kategorie. So läuft man jedenfalls nicht Gefahr, eine sagen wir verkürzte Interpretation von Fakten zu speichern, deren Ursprung einem irgendwann (z.B. bei der Neukategorisierung) fehlt. Fakten sind im übrigen viel leichter einzutragen. Nicht im Sinne von Verfügbarkeit (auf der Lastschrift vom Supermarkt findet man natürlich nicht alle Artikel, die man gekauft hat), aber Sinne der Abwägung (Grundbedarf oder Luxus). Das ist sehr subjektiv, schwankt wahrscheinlich mit der Zeit und führt zu einer eher mäßigen Kategorisierungsqualität. |
AW: Datenbankmodellierung
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 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