myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Code-Reviews » Review meines EER-Diagramms
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Review meines EER-Diagramms

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

avatar-178.gif


Dabei seit: 05.06.2019
Beiträge: 99
Entwicklungsumgebung: C# / Visual Studio 2019
Herkunft: Sachsen, Herrnhut/Zittau


echdeneth ist offline

Review meines EER-Diagramms

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

verwendetes Datenbanksystem: <MySQL>

Moin, wie im Titel angemerkt habe ich ein EER Diagramm der von mir erstellten Datenbank,
mit dessen Hilfe ich eure Meinung zu Datenbankstruktur und Bezeichnung der Spalten erbete.

echdeneth hat dieses Bild (verkleinerte Version) angehängt:
holzmichel.png
Volle Bildgröße

Neuer Beitrag 12.05.2020 09:47 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.033
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Was ist die Frage? Wirkt bisschen wie "reingeworfen und macht ihr mal bitte".
Möchtest Du ein Review, weil im passenden Forenbereich dazu ist es nicht...?
 [Hinweis] Wie poste ich richtig?

Im Endeffekt kann man an allem Kritik üben
- Naming, vor allem: warum Deutsch? Deutsch hat in der Datenbank genausowenig verloren wie im Code; kA wiesod as im DB Bereich immer noch so weit verbreitet ist. Wenigstens sieht man hier keine Umlaute.
- Warum überall Präfixe?
- Warum Prozess-Status Informationen über Boolsche Werte?
- Struktur...

Ein Datenbank-Aufbau macht man ja mit konkreten Anforderungen - und die kennen wir hier nicht.
Daher kann ein Beitrag entsprechend auch nicht sinnvoll erfolgen.
Neuer Beitrag 12.05.2020 09:52 Beiträge des Benutzers | zu Buddylist hinzufügen
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

avatar-178.gif


Dabei seit: 05.06.2019
Beiträge: 99
Entwicklungsumgebung: C# / Visual Studio 2019
Herkunft: Sachsen, Herrnhut/Zittau

Themenstarter Thema begonnen von echdeneth

echdeneth ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Abt:
Was ist die Frage? Wirkt bisschen wie "reingeworfen und macht ihr mal bitte"....

Nein, im Grunde wollte ich Meinungen und Kritik dazu, eben was du unter Kritik geschrieben hast.
Deutsch, weil ich das im Code leichter zuordnen kann
Bools, ich verwende diese Einträge als Flags um die im code behind auszuwerten
Präfixe, wegen der Zuordnung

(Diese Tabellen werden teilweise über mehrere JOINs zusammemgefasst - es gibt eine Klasse in die diese Einträge gelesen werden)

Aber ich lasse mich auch gerne belehren wie man es richtig macht.

In einer zukünfigen Version des Programmes wird auch die DB erneuert, dort Plane ich dann auch die Kritik hier einfließen zu lassen.
Neuer Beitrag 12.05.2020 11:59 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.033
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Wenn Du ein Review willst dann verwendet bitte wie deutlich gekennzeichnet den Review-Bereich und beachte die entsprechenden Regeln dort.
Danke.


Ehrliche Frage: hast Du einfach mal drauf losgelegt, oder auch technisch evaluiert?

Du hast hier offenbar ein Buttom Up Vorgehen; meiner Meinung nach entwickelt man halt so kein modernes Datenbank Schema.
Ich finde das macht nur noch in wenigen Szenarien wirklich sinn.

Ein Datenbank-Schema hat Anforderungen, die erfüllt werden müssen - die kennen wir immer noch nicht.
Anforderungen kommen vor allem aus den Business Prozessen - und die kommen aus der Anwendung. Aber da wir diese wie gesagt nicht kennen: so kann man dazu also 0 Feedback geben.

Aber...

- Ich sehe keine Notwendigkeit auf spezifische Dinge wie "PDF" zu referenzien. Aber mir ist auch null klar was "PDF_FTP_Exists" für ne Bedeutung haben soll.
Nicht erkennbar und entspricht auch keinerlei mit bekannter Naming Empfehlungen.
- Präfixe sind für mich Overhead und bringen keinen Mehrwert; ich seh ja Anhand der Tabelle wo ich bin (und gelten auch als Schema Smell)
- Die Information "Geliefert" als Bool bringt mir in der realen Welt nichts; ich will ja meist mehr wissen - mindestens das Datum.
Ergo würde ich das eher als Nullable Date hinterlegen.

Von MySQL würde ich generell - wie eigentlich fast die gesamte Community - mittlerweile großen Abstand nehmen.
MariaDB ist ja zB aufgrund der politischen Problematik mit MySQL entstanden. Selbst in der PHP Welt gibts mittlerweile große Abstandsversuche von MySQL.

Daher kann ich mich persönlich gar nicht mit dem Schema anfreunden und empfehle Dir ein kompletten Umschwung auf Code First und dem Top Down Vorgehen.

---

Das Problem mit dem Naming in der Form ist auch, dass es enormen Aufwand (und Fehleranfälligkeit) im Code bedeutet.
Bin ich keinerlei Fan von - genausowenig von Deutsch in Code oder DB.
Neuer Beitrag 12.05.2020 12:30 Beiträge des Benutzers | zu Buddylist hinzufügen
KroaX KroaX ist männlich
myCSharp.de-Mitglied

avatar-4080.jpg


Dabei seit: 31.08.2009
Beiträge: 298
Herkunft: Köln


KroaX ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Abt:
Von MySQL würde ich generell - wie eigentlich fast die gesamte Community - mittlerweile großen Abstand nehmen.
MariaDB ist ja zB aufgrund der politischen Problematik mit MySQL entstanden. Selbst in der PHP Welt gibts mittlerweile große Abstandsversuche von MySQL.

Hast du dazu etwas mehr Background? Vielleicht nen Artikel oder zwei die du gelesen hast? Hab davon gar nichts mitbekommen aber es würde mich interessieren wo die Probleme bestehen und wie sie entstanden sind.
Neuer Beitrag 12.05.2020 15:39 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MarsStein MarsStein ist männlich
myCSharp.de-Poweruser/ Experte

avatar-3191.gif


Dabei seit: 27.06.2006
Beiträge: 3.156
Entwicklungsumgebung: VS 2013, MonoDevelop
Herkunft: Trier -> München


MarsStein ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo KroaX,

schau mal ins Wikipedia:  MySQL, Absatz "Kritik"

ich denke das fasst es einigermaßen kurz und bündig zusammen.

Gruß, MarsStein

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von MarsStein am 12.05.2020 15:49.

Neuer Beitrag 12.05.2020 15:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.568
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist online Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Aus Oracles Sicht hat man halt einen starken Konkurrenten aufgekauft und lässt ihn langsam verdorren und versucht nur noch mit den Resten davon Geld zu machen.

Was Oracle aber nicht bedacht hat, viele Nutzer gehen dann von MySQL entweder zu MariaDB oder gar PostgreSQL.
Hier hat PostgreSQL in den letzten Jahren sehr viele MySQL User gewonnen, die einfach wegen unzufriedenheit abgewandert sind.
Nicht umsonst hat Oracle in den letzten Jahren seine Lizenzkosten mehrmals verdoppelt.

Ich würde auch keinem mehr in Richtung MySQL schicken.
Aus Kostengründen aber auch nicht zu Oracle ;)

T-Virus
Neuer Beitrag 12.05.2020 16:36 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

avatar-178.gif


Dabei seit: 05.06.2019
Beiträge: 99
Entwicklungsumgebung: C# / Visual Studio 2019
Herkunft: Sachsen, Herrnhut/Zittau

Themenstarter Thema begonnen von echdeneth

echdeneth ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Abt:
Ehrliche Frage: hast Du einfach mal drauf losgelegt, ...

In Ermangelung des Wissens um das konkrete Vorgehen, ja... (wir hatten noch keine Datenbanken in der Umschulung)

Bedenke hier bitte auch Ockhams Rasiermesser (Sie Sachlage ist viel simpler als du annimmst...)

Die Anforderungen sind folgende:
Es wird eine CSV geladen und in die DB übertragen.
Diese enthält die Auftragsnummer und die Artikel der Bestellung (und Menge etc).
Die Struktur der DB selbst hatte zunächst keine konkreten Anforderungen,
sie entstand erst nach und nach und ich musste sie mir selbst ausdenken.

Ich brauchte eine Artikelliste (als Referenz) und die Artikel sollten eine Priorität zugewiesen werden (Priority, es müsste eig. eine 1:1 Beziehuing sein) können. Ich wählte eine Relationale Datenbankstruktur.

Zuerst waren die Normalen Artikel (Be_Artikel, Bestellungen), der Rest kam später hinzu.
Jeder Eintrag in Be_Bestellungen stellt ein Artikel samt Bestellmenge dar, wieviel geliefert (Geliefert) wurde, und einen Flag um schnell zu Ermitteln ob ausgeliefert (istAusgeliefert) wurde.
Jeder Artikel in Be_Bestellungen ist einer Auftragsnummer (Bestellungen.Be_Bestellnummer) zugeordnet.
Jeder Auftrag enthält einen Flag ob dieser angesehen (Visit) oder komplett Ausgeliefert wurde.
Ebenso einem Artikel in der Referenz. Somit kann jeder Bestellung die Artikel und deren Priorität zugeordnet werden.

PDF_FTP_Exist - damit über eine Abfrage ersichtlich ist ob eine PDF auf einem FTP-Server dazu existiert, wie es der Name sagt. In der Anwendung kann ich dann ohne FTP-Anfrage checken ob eine zugehörige PDF existiert.

Der Bool zu Geliefert ist ausreichend - Datum war aus Sicht des Auftraggebers nicht notwendig. Das mit dem Nullable-Date würde ich aber so in einer neuen DB übernehmen. Ich hatte jedoch in der Vergangenheit das Problem diese Null-Werte auszulesen (Exceptions...).

Dem Rat mit MariaDB werde ich wahrscheinlich nachkommen. je nach dem wie sich ein Umstieg gestaltet.
Neuer Beitrag 13.05.2020 09:18 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Brymax
myCSharp.de-Mitglied

Dabei seit: 27.04.2018
Beiträge: 22
Entwicklungsumgebung: Visual Studio 2017 (Community)


Brymax ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat:
wie es der Name sagt

Mit sowas musst du vorsichtig machen Augenzwinkern Für dich sagt der Name alles. Für jemand außenstehendes ist das aber eventuell nicht so. Da ich auch vor erst knapp 2 Jahren meine Umschulung zum Fachinformatiker beendet habe weiß ich aber wie schwer es ist nicht alles nur aus der eigenen Sicht zu sehen.
Neuer Beitrag 13.05.2020 11:34 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 3 Monate.
Der letzte Beitrag ist älter als 3 Monate.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 15.08.2020 12:29