Hallo Leute,
ich bin gerade dabei, ein Tool zu schreiben, womit man eine Gemeinde verwalten kann.
Ich fange mit dem Daten Modell an und hier qualmt mir bisschen der Kopf.
Hier mal, was ich als Vorlage zusammen getragen habe:
daraus ergibt sich erstmal stumpf diese Klassen:
Spoiler anzeigen
So, nun raucht der Kopf bei folgendem:
Eine Person hat ja eine Wohnanschrift.
Problem dabei ist, diese Wohnanschrift muss nicht zwingend in dieser Gemeinde sein. Aber, diese Person kann ein Gebäude und/oder ein Grundstück in dieser Gemeinde besitzen, somit muss ich diese Person mit aufnehmen.
Weiter ist es so, das ein Gebäude mitunter ja von mehreren bewohnt werden kann (hab ich dem Modell noch garnicht beachtet) und ein Gebäude kann mehrere Besitzer haben.
Genauso kann ein Grundstück mehrere Besitzer haben, aber grundsätzlich nur 1 Gebäude (wenn wir von bewohnbaren Häusern ausgehen).
Eine Person kann mehrere Grundstücke besitzen, kann mehrere Gebäude besitzen, hat aber nur 1 Wohnanschrift in dieser Gemeinde (könnte aber weitere Anschriften in anderen Gemeinden haben)
Genauso kann es sein, das 1 Grundstück mehrere Besitzer hat, aber das Gebäude darauf mehrere andere Besitzer haben kann.
Denke ich zu kompliziert? Ich bekomms nicht aus meinem Kopf in eine Datenmodell gebastelt.
Hat jemand nen Schubs für mich?
ich bin gerade dabei, ein Tool zu schreiben, womit man eine Gemeinde verwalten kann.
Ich fange mit dem Daten Modell an und hier qualmt mir bisschen der Kopf.
Hier mal, was ich als Vorlage zusammen getragen habe:
Quellcode
-
- Eine Gemeinde:
- - hat einen Namen
- - hat eine Anschrift
- - hat Einwohner (1 oder mehrere)
- - hat GemeindeGrundstücke (1 oder mehrere)
- - hat ein Straßennetz (1 oder mehrere)
- - hat einen Bürgermeister
- Ein Einwohner (kann auch ein KEIN Einwohner sein) (ein KEIN Einwohner hat zwar Grundstücke und/oder Gebäude, wohnt aber woanders):
- - hat einen Vornamen
- - hat einen Nachnamen
- - hat eine WohnAnschrift
- - hat ein Geburtsdatum
- - weis ob er Bürgermeister ist
- - weis ob er im Gemeinderat ist
- - weis ob er Eigentümer oder Mieter ist
- - hat eventuell 1 oder mehrere Grundstücke und/oder Gebäude
- Eine Straße:
- - hat einen Namen
- - hat Grundstücke (1 oder mehrere)
- Ein Grundstück:
- - hat eine Größe
- - hat eine FlurNummer
- - weis ob es bebaut ist
- - hat Besitzer (1 oder mehrere)
- - kann ein Gebäude haben
- Ein Gebäude:
- - hat eine Nummer
- - hat eine Anzahl an Geschoßen
- - hat eine Größe
- - hat Besitzer (1 oder mehrere)
- Eine Anschrift:
- - hat eine Straße
- - hat ein Gebäude
- - hat eine Postleitzahl
- - hat einen Ort
daraus ergibt sich erstmal stumpf diese Klassen:
C#-Quellcode
-
- public class Community
- {
- public virtual int ID {get;set;}
- public virtual string Name {get;set;}
- public virtual Address Address {get;set;}
- public virtual ICollection<Person> Residents {get;set;}
- public virtual ICollection<LandArea> CommunityAreas {get;set;}
- public virtual ICollection<Street> StreetNetwork {get;set;}
- public virtual Person CommunityMayor {get;set;}
- }
- public class Person
- {
- public virtual int ID {get;set;}
- public virtual string FirstName { get; set; }
- public virtual string LastName {get;set;}
- public virtual Address HomeAddress {get;set;}
- public virtual DateTime BirtDate {get;set;}
- public virtual bool IsCommunityMayor {get;set;}
- public virtual bool IsMemberOfMunicipalCouncil {get;set;}
- public virtual bool IsOwner {get;set;}
- //irgendwie hier ne Liste von Gebäuden und/oder Grundstücken
- }
- public class Street
- {
- public virtual int ID {get;set;}
- public virtual string StreetName {get;set;}
- public virtual ICollection<LandArea> StreetAreas {get;set;}
- }
- public class LandArea
- {
- public virtual int ID {get;set;}
- public virtual decimal Size {get;set;}
- public virtual int AreaNumber {get;set;}
- public virtual bool IsBuildOn {get;set;}
- public virtual ICollection<Person> Owners {get;set;}
- public virtual Building HouseOnArea {get;set;}
- }
- public class Building
- {
- public virtual int ID {get;set;}
- public virtual int Number {get;set;}
- public virtual int FloorCount {get;set;}
- public virtual decimal LivingSize {get;set;}
- public virtual ICollection<Person> Owners {get;set;}
- }
- public class Address
- {
- public virtual int ID {get;set;}
- public virtual Street Street {get;set;}
- public virtual Building House {get;set;}
- public virtual int PostalCode {get;set;}
- public virtual string City {get;set;}
- }
So, nun raucht der Kopf bei folgendem:
Eine Person hat ja eine Wohnanschrift.
Problem dabei ist, diese Wohnanschrift muss nicht zwingend in dieser Gemeinde sein. Aber, diese Person kann ein Gebäude und/oder ein Grundstück in dieser Gemeinde besitzen, somit muss ich diese Person mit aufnehmen.
Weiter ist es so, das ein Gebäude mitunter ja von mehreren bewohnt werden kann (hab ich dem Modell noch garnicht beachtet) und ein Gebäude kann mehrere Besitzer haben.
Genauso kann ein Grundstück mehrere Besitzer haben, aber grundsätzlich nur 1 Gebäude (wenn wir von bewohnbaren Häusern ausgehen).
Eine Person kann mehrere Grundstücke besitzen, kann mehrere Gebäude besitzen, hat aber nur 1 Wohnanschrift in dieser Gemeinde (könnte aber weitere Anschriften in anderen Gemeinden haben)
Genauso kann es sein, das 1 Grundstück mehrere Besitzer hat, aber das Gebäude darauf mehrere andere Besitzer haben kann.
Denke ich zu kompliziert? Ich bekomms nicht aus meinem Kopf in eine Datenmodell gebastelt.
Hat jemand nen Schubs für mich?
"Hier könnte Ihre Werbung stehen..."