Daten Modell Gemeinde

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 50 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Das könnte man beachten, bei uns kommt es eigentlich nicht vor.
    Wir haben 3 Mehrfamilienhäuser im Ort, die haben jeweils die gleiche Adresse (gleiche Hausnummer).
    In größeren Gemeinden oder Städten kann das aber sicherlich vorkommen.
    "Hier könnte Ihre Werbung stehen..."
    @MichaHo OK, dann kannst Du ja sozusagen "klein" anfangen und das ganze bei Bedarf ausbauen.
    Ich habe bei einem Alt-Projekt (Messwertaufnahme und Auswertung) gelernt, dass die "richtige" Ableitung von Basisklassen extrem hohe Priorität hat, und Du da lieber eine Woche länger nachdenken solltest, bevor Du mit Coden anfängst.
    Mein Problem besteht darin, dass diese Daten binär serialisiert werden und damit die Klassenstruktur nicht mehr ohne Update geändert werden kann.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    MichaHo schrieb:

    ich hänge hier mal ein TestProjekt an. Soweit sieht das mal gut aus.
    Schade, es gibt kein ER-Diagramm, wo man das Datenmodell irgendwie in einen Überblick bekommen könnte.

    Ansonsten: Du setzst deinen DataContext im Codebehind. Damit vergibst du die Chance, mittels BindingPicking, ein bisserl sicherer coden zu können.
    Codest du realiter auch so?
    Hallo,
    @RodFromGermany ich denk da schon länger drüber nach und bin noch zu keinem für mich gutem Ergebnis gekommen. Ich bin auch nicht der klassische Data Analyst. Ich versuche mir dabei immer vorzustellen wie ich die Daten eingeben würde und anahnd dessen versuche ich die Models aufzubauen.
    ich scheitere im Moment an den blöden Grundstücken und deren Adresse.

    @ErfinderDesRades
    normalerweise setze ich keinen DataContext im Code Behind, normalerweise habe ich dafür DataTemplates und DependencyInjection. aber hier sollte es ja nur ein kleines Testprojekt sein um die Model Daten zu testen. Normalerweise hängt bei mir immer EFCore mit dran und somit auch ein Context, DataProvider, DataService usw. mit Interfaces was alles über DI registriert wird.
    "Hier könnte Ihre Werbung stehen..."
    Hi @ErfinderDesRades
    bei den Designerdaten und der Variante mit DependencyInjection gibt es 2 Möglichkeiten.
    1. eine eigene ViewModelklasse für die Designerdaten
    hier ist halt der Nachteil das 2 gleiche ViewModel existieren die gepflegt werden müssen.
    2. einen Parameterlosen Konstruktor für die Designerdaten
    diese Variante bevorzuge ich. Ich hab also immer einen 2. Konstruktor, der keine Paramater hat und dort drin erstelle ich Designerdaten.
    dies wird dann über die DesignerInstance eingebunden.

    Klappt hervorragend

    EDIT:
    ich hab mich nochmal dran gesetzt und überlegt.
    Hier mal das Klassendiagramm des jetzigen Daten Modell



    Von der Logik her, sollte das ja das reale Leben abbilden, aber wenn ich darüber nachdenke wie ich da die Daten ansich drüber rein kloppen soll, bekomm ich nen Knoten ins Hirn.
    "Hier könnte Ihre Werbung stehen..."

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MichaHo“ ()

    Jo, das mit dem parameterlosen Konstruktor klingt cool.


    Zum Bildle:
    Das ist ein Klassenmodell, wo man sieht, wer was beerbt. Es ist kein ERD, aus dem die Relationen hervorgehen.
    Irgendwie beinhaltet ja ein Dorf viele Einwohner, viele grundstücke, und ein Gemeinderat beinhaltet auch viele Einwohner, und an einer Addresse wohnen womöglich auch viele Einwohner.
    Und so Sachen.
    Hingegen ModelBase ist ja gar keine Entität - hätte im ERD nix verloren.

    Aber auch an diesem Bildle ergeben sich Fragen: Sollte GemeindeRat nicht von Einwohner erben? Oder sitzen da auch Leuts von auswärts?
    Hi,
    Gibts irgendein Tool was aus den Klassen ein ER baut??

    Also, der Gemeinderat besteht aus Bürgern (Einwohnern).
    Ein Dorf hat einen Gemeinderat, hat natürlich Einwohner.
    Das Dorf selbst ist Besitzer von Grundstücken (Friedhof, Sportplatz, Spielplatz, Gemeindehaus und ev. Baugrundstücke im Neubaugebiet)
    Für mich sind das halt alles Personen, denn... Eine Person kann Einwohner sein, ein Einwohner kann gleichzeitig Bewohner, Besitzer und Mitglied im Gemeinderat oder gar der Bürgermeister sein.
    Innerhalb des Dorfes gibt es Straßen und Grundstücke. Die Grundstücke wiederum können Häuser drauf haben und haben meist Besitzer.
    Die Gebäude ansich haben eine Adresse, Bewohner und Besitzer, wobei die Bewohner auch Besitzer sein können.
    Dann kommt hinzu das Besitzer eines Grundstücks, oder eines Gebäudes eine Adresse haben, die aber NICHT im Dorf ist sondern woanders.
    "Hier könnte Ihre Werbung stehen..."
    Ich glaube (es seidenn du machst Abstriche, weil es bei euch nicht so ist):

    - ein Einwohner könnte theoretisch auch in mehreren Dörfern leben (Nebenwohnsitz, etc.) -> sprich m:n
    - selbiges gilt für dementsprechend auch für Gebäude: ein Gebäude kann mehrere Einwohner haben - und ein Einwohner kann aber auch mehrere Gebäude beziehen -> m:n

    VG,
    Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Hi,
    Jo, das hatte ich auch schon mal gebastelt dann halt mit Zwischentabellen.
    Ändert leider immer noch nix an der Tatsache das ich es gedanklich nicht zusammenkriege wie ich die Daten dann anständig ins Modell kloppe.
    "Hier könnte Ihre Werbung stehen..."
    Naja wieso? Alles was eine Abhängigkeit hat, setzt voraus, dass die zu verknüpfende Entität bereits vorhanden ist.

    Oder wo genau hast du da Schwierigkeiten? Oder geht es ausschließlich um die Implementierung und Klassenstruktur?
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Japp, eigentlich genau dabei.
    Ich stelle mir im Kopf halt vor, wie meine Anwendung aussehen muss damit es auch praktikabel ist.
    Also wenn die Anwendung startet zum Beispiel, will ich zum Beispiel einen Einwohner hinzufügen.
    Um diesen anlegen zu können brauch ich dann aber erst ein Dorf (klar, das kommt durch das Seeding), dann ein Grundstück, dann ein Gebäude, dann eine Adresse und dann erst kommt die Person.
    Und das sind die Dinge die ich im Kopf nicht beinander bekomme, oder ich denke zu kompliziert.
    Ich müsste ja dann erstmal alle Grundstücke anlegen, dann alle Gebäude mit Zuordnung zum Grundstück, dann alle Adressen zu diesem Gebäude, dann müssen die Besitzer und Einwohner angelegt werden und den Gebäuden, Adressen, Grundstücken (und eventuell dem Gemeinderat) zugeordnet werden.

    Aber der normale Ablauf wäre ja, Dorf auswählen -> Einwohner hinzufügen -> speichern -> fertig.
    Oder wie?
    "Hier könnte Ihre Werbung stehen..."
    Jo, so finde ich das Modell leidlich plausibel.
    2 Punkte wurden schon genannt:
    1. ich glaube ja, GemeinderatsMitglieder müssen nicht nur Personen sein, sondern müssen Einwohner sein, also da stelle ich eine Frage an die Vererb-Hierarchie. Ist vmtl. nicht so rasend wichtig, und möglicherweise irre ich mich, und es können durchaus Personen von Ausserhalb bei euch Gemeinderat sein - wasweissich.
    2. Acr0most merkt an, dass dein Modell nicht zulässt, dass ein Besitzer mehrere Gebäude besitzt. Das finde ich sehr kritisch, weil mein Erleben der Realität ist, Besitzer haben die starke Tendenz immer mehr zu besitzen - auch Gebäude-Besitzer.
    Wie du deine Anwendung aufbaust ist eine annere Frage. Auf jeden Fall kannst du sie überhaupt nur aufbauen, wenn das Datenmodell korrekt ist.
    Ja, und stimmt - es gilt Reihenfolgen einzuhalten: Übergeordnete Entitäten müssen zuerst erstellt werden.
    Du kannst - nach deinem Modell also keinen Besitzer anlegen, bevor es das Gebäude gibt, was er besitzt. Das bestätigt Acromosts Bemängelung, und eine Mittler-Tabelle würde das lösen.
    Eventuell ist die Entität Besitzer auch falsch und muss weg. Jede Person kann Besitzer sein.
    Ich glaub grad, auch Einwohner ist falsch. Jede Person kann Einwohner sein.
    GemeinderatMitglied ebenso. Also ich nehme meinen Einwand zurück, bzw. ändere auf: GemeinderatMitglied muss weg.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „ErfinderDesRades“ ()

    @ErfinderDesRades Japp, da geb ich Dir Recht.

    Also, ein Bürgermeister oder ein GemeinderatMitglied ist natürlich auch ein Einwohner, anners gehts bei uns auch garnicht -> ist geändert.
    Das ein Gebäude mehrere Besitzer haben kann hab ich ja drin, das ein Besitzer mehrere Gebäude haben kann und auch mehrere Grundstücke ist auch korrekt, das muss ich dann durch eine Zwischentabelle lösen.
    Stimmt, da habt Ihr recht.

    Ein Besitzer muss nicht zwangsläufig auch ein Einwohner sein, der kann durchaus auch von woanders her kommen, also muss ich noch eine Entität Besitzer schaffen. (Frag mich nur was der für Eigenschaften haben sollte... Hmmm...
    "Hier könnte Ihre Werbung stehen..."
    jaja, jede Person kann Einwohner sein - wenn sie eine Addresse hat bei euch im Dorf.

    Mir wird das immer stimmiger, und scheint sich auch einiges zu vereinfachen.

    GemeindeRat muss man neu denken. Es ist eher eine MittlerTabelle zw. Dorf und Person.
    Ob es eine eigene Entität GemeindeRat geben muss weiss ich nicht - wird sich dann zeigen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    ich glaube die Untergliederung in Person, Einwohner, etc. kommt nur aus dem Ansatz der Vererbung. Ich denke im ERM sollte die gar keinen Anklang finden.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Also gibts es doch nur die Entität Person, die dann eben jenachdem wo sie erstellt wird ein Einwohner, Besitzer, Gemeindemratmitglied oder Bürgermeister ist.
    Oder doch Vererbungen von Person, also Einwohner, Besitzer, Gemeinderatmitglied, Bürgermeister??
    "Hier könnte Ihre Werbung stehen..."