Daten Modell Gemeinde

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

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

    MichaHo schrieb:

    Entität Person, die dann eben jenachdem wo sie erstellt wird
    Was heisst "Wo erstellt wird"? Eine Person wird erstellt.
    Wenn du einen Address-Datensatz dieser Person zuordnest, so wird sie zum Einwohner.
    Wenn du einen GemeindeRat-Datensatz dieser Person zuordnest, so wird sie zum Gemeinderatsmitglied.
    Wenn du einen Besitz-Datensatz dieser Person zuordnest, so wird sie zum Besitzer.

    Bürgermeister würde ich als Fremdschlüssel im Dorf ansiedeln - also dass das Dorf auf ein Gemeinderat-Datensatz verweist, welcher Bürgermeister ist. (Logisch: 1 Dorf hat 1 Bürgermeister)
    Ja, das hab ich ja verstanden.
    Aber, ein Adressdatensatz kann ja durchaus aus einem anderen Dorf sein.

    Beispiel:
    Klaus Müller ist Besitzer des Grundstücks GRD1 mit dem Gebäude GBD1 und der Adresse Straße1, Hausnummer 12, PLZ 08150 und Stadt Musterhausen.
    Dieses Grundstück mit Gebäude ist aber im Dorf Namens MusterDorf und nicht in Musterhausen.
    Also ist Klaus Müller Besitzer, aber kein Einwohner.

    Wobei Gretel Müller, Einwohnerin von Dorf Musterdorf ist, gleichzeitig Bewohnein von GBD1 auf GRD1 aber nicht Besitzerin, das ist Klaus Müller.

    Und wenn ich das Beispiel mal vortführe oder ausweite:
    Dorf hat den Namen MusterDorf und die PLZ 12345.
    Dorf hat eine Liste von Personen (Einwohner)
    in dieser Liste taucht Gretel Müller auf.
    Gretel Müller ist Bewohnerin des Gebäude 1 auf Grundstück 1 mit der Adresse: Waldstrasse 12, 12345 Musterdorf
    Besitzer des Grundstück 1 und Besitzer des Gebäude 1 auf Grundstück 1 mit der Adresse: Waldstrasse 12, 12345 Musterdorf ist aber Klaus Müller mit der Adresse Hauptsraße 13, 54321 Musterhausen.

    Ich muss also einer Person eine Adresse zuweisen können, die unabhängig vom Grundstück und/oder Gebäude ist.

    Eigentlich müsste es doch so sein:
    Das Dorf anlegen und dann die Einwohner.
    Ein Einwohner wird einer Straße zugewiesen und einem Gebäude (weil PLZ und Wohnort ist ja dann gleich dem Dorf)
    Dann muss der Einwohner deklariert werden ob er Nur Bewohner oder nur Besitzer oder gar beides ist. (Besitzer von Grundstück und/oder Gebäude)
    Dann müsste man noch definieren können ob der Einwohner Gemeinderat Mitglied ist oder gar Bürgermeister, und ob er noch mehr Besitztümer (Grundstücke, Gebäude) hat.
    Und falls ein Grundstück und/oder Gebäude einen Besitzer hat, der kein Einwohner ist, muss dieser Person eine abweichende Adresse zuweisbar sein.

    DAS bekomme ich halt im Kopf nicht beinander, vor allem weil ein Grundstück und/oder Gebäude ja auch mehrere Besitzer und mehrere Bewohner haben kann wobei dann noch vorkommen kann, das von den mehreren Besitzern Besitzer dabei sein können, die NICHT in diesem Dorf wohnen.
    "Hier könnte Ihre Werbung stehen..."

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

    So, hab jetzt nochmal dran rum gebastelt:


    Wo ist jetzt noch ein Problemchen habe ist, das wenn eine Person gleichzeitig Besitzer und Bewohner ist, dann stünde er beim Gebäude in 2 Listen.

    Nochmal angepasst, denn ein Grundstück hat ja auch Besitzer.

    "Hier könnte Ihre Werbung stehen..."

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

    Und noch eine Blockade die ich gerade habe als ich die Models geschrieben habe.

    1 Grundstück kann mehrere Besitzer(Person) haben und 1 Person kann mehrere Grundstücke besitzen (OK, das ist eine n:m Beziehen da muss ne Zwischentabelle für her)
    1 Gebäude kann mehrere Bewohner(Person) haben und 1 Person kann mehrere Gebäude besitzen, ABER wohnt nur in 1 Gebäude.
    Also eine n:m Beziehung zwischen Gebäude und Person (Zwischentabelle) und zusätzlich einen 1:n Beziehung zwischen Gebäude und Person.

    Wie stell ich das denn dar?
    "Hier könnte Ihre Werbung stehen..."

    MichaHo schrieb:

    Eigentlich müsste es doch so sein:
    Achmist - noch anders:

    Das Dorf anlegen
    seine Grundstücke anlegen, Strassen und Addressen. (jeweils 1:n) 1 Dorf, n Grundstücke, Strassen, addressen
    Personen anlegen.
    Den Personen Addressen zuweisen (m:n) 1 Person kann viele Addressen - bei 1 Addresse können viele Personen wohnen
    den Personen Gemeinderats-Mitgliedschaft zuweisen (1:n) 1 Person in nur 1 Gemeinderat
    Dem Dorf den Bürgermeister sagen. (1:n) nur einer der GR-Personen ist Bürgermeister
    Person/Gebäuden Besitzer zuweisen. (m:n) 1 Person kann viel besitzen, 1 Besitz kann von vielen Personen besessen werden
    Person/Grundstücken Besitzer zuweisen. (m:n) 1 Person kann viel besitzen, 1 Besitz kann von vielen Personen besessen werden
    Interessant auch die m:n zwischen Strasse und Grundstück: (m:n) 1 Strasse berührt viele Grundstücke, 1 Grundstück viele Strassen

    Also ich komme bei folgenden Entitäten raus:
    "Echte" Entitäten:
    Dorf, Strasse, Grundstueck, Gebaeude, Addresse, Person.
    "verknüpfende Entitäten":
    RatsMitgliedschaft, PersonAddresse, Grundbesitz, GebaeudeBesitz, StrassenRand
    Mehr nicht.

    Und Vererbung spielt da keine Rolle. So Eskapaden wie ExternePerson - das wird nix: Da haste dann eine ExternePerson, und dann zieht die in euer Dorf, wird also zur Person? was machste mit der ExternenPerson - erschiessen?
    Ähnlich mittm Ratsmitglied als von Person geerbt. Ja, dann tritt er aus und dann? Du kannst nicht einfach aus einem RatsMitglied-Objekt ein PersonObjekt machen, das sind 2 verschiedene Klassen.
    Und (in meim Modell) ja auch garnet nötig: Wenn es einen Ratsmitgliedschaft-Datensatz gibt, der auf eine bestimmte Person verweist, dann ist sie wohl im Rat.
    Und das Dorf muss also auf eine Person verweisen, die Bürgermeister ist. (Programm-Logik muss dabei (die RatsMitgliedschaften) checken, ob die Person (Bürgermeister) auch im Rat sitzt (und im Dorf eine Addresse hat). Ein Datenmodell kann diesen Check nicht, eine Klassenhierarchie erst recht nicht)

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

    ErfinderDesRades schrieb:

    Das wäre aber redundant, wenn die Person eine Addresse in einem Ort hat.


    Inwiefern redundant?
    Ich würde der Person n-Adressen zuordnen. Eine davon wegen mir mit einem Main-Flag versehen, sofern notwendig.

    Eventuell ein anderer Gedankengang - Warum die Adresse nicht direkt zum Gebäude?
    Ich glaube das würde etwas Klarheit bringen. Je nach Naming gehört dann eine Anschrift zu einer Person (oder x-Anschriften) und eine Adresse zu einem Gebäude.
    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:

    Acr0most schrieb:

    Inwiefern redundant?
    Ich würde der Person n-Adressen zuordnen. Eine davon wegen mir mit einem Main-Flag versehen, sofern notwendig.
    Es geht um Personen, die nicht im Dorf wohnen. Denen kannste keine Addresse des Dorfes zuordnen - aber anschreiben muss man die ja trotzdem können - etwa Grundstücksbesitzer, die ausserhalb wohnen.

    MichaHo schrieb:

    Hab noch eine Entität Abweichende Wohnanschrift dazu getan.
    Mir scheint die Relation falschrum. Eine AW verweist auf eine Person.
    Weil nicht bei einer AW wohnen viele Personen, sondern eine Person hat vielleicht(tatsächlich ja meistens nicht) eine AW oder keine. Weil eine oder keine schlecht abbildbar ist, sagich: Eine Person hat mehrere AWs (kann ja sogar wirklich so sein, wichtig ist vor allem, dass sie auch keine AW haben kann)
    Wenn jemand angeschrieben werden soll muss Programmlogik dann vorrangig nach Addressen der Person suchen, nachrangig nach AWs.

    Benamung: Bitte keine Umlaute, und mir wäre "Abweichende Wohnanschrift" viel zu lang - siehste ja, hier im Post fange ich gleich an mit abkürzen.
    Und dann würde ich die Entitäten im ERD mal so zurechtschieben, dass möglichst wenig Linien sich überkreuzen - so ist das Bildle ja ziemlich unübersichtlich.
    Ist bischen Knobelei, aber ich glaube, dieses Datenmodell kann man sogar komplett kreuzungsfrei darstellen.