Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: chocolatywalrus am Dezember 07, 2020, 11:37:59

Titel: Anfängerfrage Datenbankstruktur
Beitrag von: chocolatywalrus am Dezember 07, 2020, 11:37:59
Liebes Forum,

zunächst einmal möchte ich ein freundliches Hallo in die Runde sagen und den Moderatoren und Mitgliedern ein Kompliment für dieses Forum machen!

Ich plane gerade eine Datenbank und habe gemerkt, dass Excel hierfür wohl an seine Grenzen stoßen wird. Bzw. Access langfristig viel komfortabler sein wird, weil man die Eingabe der Daten von der Abfrage und schließlich von dem Bericht der Daten trennen kann.

Meine erste Frage in diesem Forum betrifft eher grundsätzlich die Struktur meiner Datenbank bzw. der einzelnen Tabellen. Ich glaube, die Lösung ist gar nicht so schwer. Ich habe trotzdem einen "Hänger" und komme nicht weiter. Folgendes soll die fertige Datenbank leisten können:

- Die Datenbank soll mehrere (Gebäude-)Objekte umfassen. Ein Objekt kann aus mehreren Gebäudeteilen, zwingend allerdings aus mehreren Etagen und Räumen bestehen.
- Außerdem soll die Datenbank mehrere Mieter enthalten. Einem Mieter soll eine bestimmte Mietfläche (Objekt/ggf. Gebäudeteil/Etage/ggf. Raum) zugeordnet werden. Ggf. sollen einem Mieter auch mehrere Mietflächen in verschiedenen Gebäuden zugeordnet werden können.
- Außerdem soll die Datenbank Informationen über bestimmte bewegliche Gegenstände (sog. Betriebsvorrichtungen) beinhalten. Die Betriebsvorrichtungen sollen einem bestimmten Objekt/Gebäudeteil/Etage/Raum und ggf. einem Mieter zugeordnet werden.

Am Ende möchte ich Berichte z.B. über die verschiedenen Betriebsvorrichtungen in einem Objekt, sortiert nach Mietern und Etagen, erzeugen. Es wäre irgendwann auf der Reise zu einer perfekten Datenbank auch sehr schön, die Erfassung und Bearbeitung von Objekten, Mietern und Betriebsvorrichtungen durch Formulare nutzerfreundlich umzusetzen.

Ich habe hierfür vier Tabellen erstellt (tblObjekte, tblMieter, tblMietverhältnisse, tblBetriebsvorrichtungen). Mir hapert es im Moment an der Struktur für die Gebäudeteile, Etagen und Räume eines Objekts. Es liegt ja irgendwie nahe, das in tblObjekte zu inkludieren. Dort habe ich auch bereits Felder für den Objektnamen, Straßennamen, Hausnummer, PLZ und Ort eingefügt. Wie kann ich jetzt am besten die Zuordnung treffen, dass ein Objekt vielleicht aus mehreren individuell bezeichneten Gebäudeteilen besteht, jedenfalls aber mehrere Etagen und Räume mit verschiedenen individuellen Bezeichnungen umfasst. Erstelle ich dafür jeweils eine eigene Tabelle?

Vielen Dank im Voraus für sämtliche Ideen und Aregungen!

Herzliche Grüße
chocolatywalrus
Titel: Re: Anfängerfrage Datenbankstruktur
Beitrag von: DF6GL am Dezember 07, 2020, 13:48:25
Hallo und willkommen im Forum.

Du hast ja das Konzept schon detailliert beschrieben.

ZitatDie Datenbank soll mehrere Gebäude umfassen. Ein Gebäude kann aus mehreren Gebäudeteilen, zwingend allerdings aus mehreren Etagen und Räumen bestehen.
- Außerdem soll die Datenbank mehrere Mieter enthalten. Einem Mieter soll eine bestimmte Mietfläche (Gebäude/Gebäudeteil/Etage/Raum) zugeordnet werden. Ggf. sollen einem Mieter auch mehrere Mietflächen in verschiedenen Gebäuden zugeordnet werden können.
- Außerdem soll die Datenbank Informationen über bestimmte bewegliche Gegenstände beinhalten. Die Gegenstände sollen einem bestimmten Gebäude/Gebäudeteil/Etage/Raum und ggf. einem Mieter zugeordnet werden.

Erstelle für jedes der "Items"  (Gebäude, Gebäudeteil, Etage, Raum, Mieter, Inventar  usw.) eine eigene Tabelle.

Die Zuordnungen werden über weitere Tabellen definiert, die in n:m-Beziehung stehen.


Z. B.: Die Zuordnung eines Mieters zu einem Raum geschieht in einer speraten Tabelle "tblMiterRaeume", die neben einem Primärschlüsselfeld (Autowert) zwei Fremdschlüsselfelder ("MR_RaumID", "MR_MieterID", Datentyp Long) enthält, die zur Referenzierung des Raumes und des Mieters nötig sind.

ZitatIch habe hierfür vier Tabellen erstellt (tblObjekte, tblMieter, tblMietverhältnisse, tblInvetar)


Was sollen "tblObjekte" und "tblMietverhältnisse" beinhalten?


ZitatAm Ende möchte ich Berichte über die verschiedenen beweglichen Gegenstände in einem Objekt, sortiert nach Mietern und Etagen, erzeugen.

Kein Problem, wenn die Tabellenstruktur korrekt ist.


ZitatWie kann ich jetzt am besten die Zuordnung treffen, dass ein Gebäude vielleicht aus mehreren individuell bezeichneten Gebäudeteilen besteht, jedenfalls aber mehrere Etagen und Räume mit verschiedenen individuellen Bezeichnungen umfasst. Erstelle ich dafür jeweils eine eigene Tabelle?

Ja, genau so wie oben schon vorgeschlagen.


Lies u. st. Links 1, 1a und 1b bezgl. Normalisierung.

Titel: Re: Anfängerfrage Datenbankstruktur
Beitrag von: chocolatywalrus am Dezember 07, 2020, 14:47:34
Lieber DF6GL, herzlichen Dank für deine Antwort! Nur ein kurzer Hinweis: Ich habe meine Anfrage zwischendurch hinsichtlich der Bezeichnungen etwas präzisiert. Vielleicht wird meine Anfrage sowie meine bisherige Tabellenstruktur dadurch etwas verständlicher.

Zitat von: undefinedErstelle für jedes der "Items"  (Gebäude, Gebäudeteil, Etage, Raum, Mieter, Inventar  usw.) eine eigene Tabelle.

Die Zuordnungen werden über weitere Tabellen definiert, die in n:m-Beziehung stehen.


Z. B.: Die Zuordnung eines Mieters zu einem Raum geschieht in einer speraten Tabelle "tblMiterRaeume", die neben einem Primärschlüsselfeld (Autowert) zwei Fremdschlüsselfelder ("MR_RaumID", "MR_MieterID", Datentyp Long) enthält, die zur Referenzierung des Raumes und des Mieters nötig sind.

Verstanden. Das werde ich versuchen umzusetzen. Deine Antwort bestätigt meine Vermutung. Ich war mir einfach unsicher, ob ich tatsächlich für jedes "Item" eine eigene Tabelle brauche.

Zitat von: undefinedWas sollen "tblObjekte" und "tblMietverhältnisse" beinhalten?

Die Bezeichnung "tblObjekte" ist in diesem Zusammenhang vielleicht etwas missverständlich. Mit "Objekt" ist ein (Gebäude-)Objekt gemeint. tblObjekte beinhaltet den Namen des (Gebäude-)Objekts und die postalische Anschrift (sowie den Eigentümer des (Gebäude-)Objekts, was aber für meine Anfrage hier nicht wichtig ist). tblMietverhältnisse soll die Zuordnung eines Mieters zu einem (Gebäude-)Objekt herstellen. Eine separate Tabelle ist m.E. nötig, da es sich zwischen (Gebäude-)Objekt und Mieter um eine n:m-Beziehung handelt. Schließlich kann ein Mieter auch in mehreren (Gebäude-)Objekten Flächen gemietet haben. Oder sehe ich das falsch?

Zitat von: undefinedLies u. st. Links 1, 1a und 1b bezgl. Normalisierung.
Das werde ich tun, vielen Dank!
Titel: Re: Anfängerfrage Datenbankstruktur
Beitrag von: Beaker s.a. am Dezember 07, 2020, 15:58:49
@chocolatywalrus
Nein, das siehst du nicht falsch.
Mir ist aber schon beim Lesen deines OP etwas aufgefallen, das sich jetzt
bestätigt hat.
"tblMieter" würde ich erweitern auf "tblPersonen" (auch jur.). Denn neben
den Mietern gibt es nun Eigentümer, und wer weiss, was da noch dazu
kommt; - Hauswarte, Mitarbeiter, Fremdfirmen, yni. Dazu noch eine Tabelle
für die Rollen.
"Adresssen" würde ich auch alle in eine Tabelle verfrachten, mit FK entweder
auf die Person oder das Objekt (s. Anhang).

gruss ekkehard
Titel: Re: Anfängerfrage Datenbankstruktur
Beitrag von: chocolatywalrus am Dezember 07, 2020, 16:41:46
@Beaker s.a. , vielen Dank auch für deine wertvollen Hinweise! Ich werde sie mit aufnehmen. Ich denke zwar nicht, dass noch weitere Personen hinzutreten werden. Ich mag aber die "Denkweise" und die Zukunftssicherheit, falls sich das doch einmal ändern sollte. Ich werde deine Vorschläge und die Vorschläge von @DF6GL versuchen umzusetzen. Ich glaube, es lohnt sich für mich, wenn ich mir am Anfang viel Zeit für die Datenbankstruktur nehme. Es fühlt sich bereits jetzt so an, als ob die richtige Struktur (mehr als) die halbe Miete einer guten Datenbank ausmacht. Vielleicht kann ich meine "fertige" Relationsübersicht in ein paar Tagen hier posten.
Titel: Re: Anfängerfrage Datenbankstruktur
Beitrag von: Beaker s.a. am Dezember 07, 2020, 17:51:28
Hallo,
ZitatIch mag aber die "Denkweise" und die Zukunftssicherheit
Klar, die eine oder andere Tabelle mehr stört ja nicht.
Zitatwenn ich mir am Anfang viel Zeit für die Datenbankstruktur nehme. Es fühlt sich bereits jetzt so an, als ob die richtige Struktur (mehr als) die halbe Miete einer guten Datenbank ausmacht
So sieht das aus. Es ist gut, dass du das so früh einsiehst, ganz im
Gegenteil zu vielen anderen Hilfesuchenden hier und in anderen Foren,
die das einfach nicht einsehen wollen. Diese aufgewendete Zeit sparst
du später bei der Erstellung der GUI zehnfach wieder ein. Und auch das
Helfen macht allen hier dann viel mehr Spass.

gruss ekkehard