Paul: strukturelle Frage

Moin,
ich möchte eine Datenbank aufbauen (das DBMS ist noch offen) die Daten zu Wohnungen beinhaltet. Dabei habe ich nun die Frage wie man folgendes am besten abbildet:

Der Hund darf nur ins Wohnzimmer.
Die Katze darf ins Wohnzimmer und in die Küche.
Das Kind darf ins Wohnzimmer, ins Esszimmer, in das Bad, in das Kinderzimmer.
Der Vater darf ins Wohnzimmer, ins Esszimmer, ins Bad, ins Schlafzimmer und in die Küche.
Die Mutter darf ins Wohnzimmer, ins Esszimmer, ins Bad, ins Schlafzimmer und in die Küche
usw, usw

Die Liste kann theoretisch unbegrenzt fortgesetzt werden. Sowohl auf der Bewohnerseite als auch auf der Zimmerseite.

Wie bildet man das in einer DB ab?

Paul

PS: bitte keine Bemerkungen über den grundlegenden Zweck der Daten. Könnte sich ja auch um Angestellte einer Firma handeln die nur in bestimmte Bereiche Zugang haben sollen.

  1. Hello,

    Wie bildet man das in einer DB ab?

    ...zum Beispiel mit einer Tabelle Bewohner, einer Tabelle Raum und einer Tabelle Berechtigung die beide verbindet.
    Im Moment hast du 5 Bewohner, 5 Räume, 17 Berechtigungen.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Death is nature's way of telling you to slow down.
  2. Hi!

    ich möchte eine Datenbank aufbauen (das DBMS ist noch offen) die Daten zu Wohnungen beinhaltet. Dabei habe ich nun die Frage wie man folgendes am besten abbildet:

    Das sind typische m:n-Beziehungen, die man mit einer Zwischentabelle abbildet. Eine Ausnahme könnte man machen, wenn die Räume keine eigenständigen Datensätze sind, sondern in der gesamten Datenhaltung nur durch ihren Namen präsent sind. Dann könnte man diese Namen als Werte für ein Set definieren und die Berechtigungen durch Mitgeliedschaften im Set darstellen. Wer außer MySQL noch den Datentyp SET im Angebot hat, weiß ich aber nicht. Zur Not kann man das durch belegte Bits in (unsignierten) Integers abbilden.

    Lo!

  3. Hello,

    ich möchte eine Datenbank aufbauen (das DBMS ist noch offen) die Daten zu Wohnungen beinhaltet. Dabei habe ich nun die Frage wie man folgendes am besten abbildet:

    Der Hund darf nur ins Wohnzimmer.
    Die Katze darf ins Wohnzimmer und in die Küche.
    Das Kind darf ins Wohnzimmer, ins Esszimmer, in das Bad, in das Kinderzimmer.
    Der Vater darf ins Wohnzimmer, ins Esszimmer, ins Bad, ins Schlafzimmer und in die Küche.
    Die Mutter darf ins Wohnzimmer, ins Esszimmer, ins Bad, ins Schlafzimmer und in die Küche
    usw, usw

    Die Liste kann theoretisch unbegrenzt fortgesetzt werden. Sowohl auf der Bewohnerseite als auch auf der Zimmerseite.

    Wie bildet man das in einer DB ab?

    • Die Wohnung
        hat Eigenschaften
      -- welche Zimmer hat sie?
      -- welche Etage liegt sie?
      -- wo liegt sie?

    • das Zimmer
        hat Eigenschaften:
      -- welche Größe
      -- Zentralheizung?
      -- Anzahl Türen

    • Der Bewohnertyp
        hat Eigenschaften
      -- Geschlechtsliste
      -- Alter von
      -- Alter bis
      -- Größe von
      -- Größe bis

    • Die tatsächlichen Bewohner (leiten sich vom Bewohnertyp ab)
        haben Eigenschaften
      -- Geschlecht
      -- Alter
      -- Größe

    Und nun gibt es auch noch Paarungen zwischen den einzelnen Entitäten

    • Wohnung <-> Bewohnertyp

    und

    • Zimmer <-> Bewohner
      -- darf von Uhr
      -- bis Uhr
      -- immer (boolean)  (würde in diesem Beispiel die Zeit redundant überschreiben)
      -- nur in Begleitung

    Dazu benötigst Du dann jeweils eine Zwischentabelle, die die m:n-Verknüfungen aufnimmt und die ggf. zusätzlichen Bedingungen dazu speichert.

    Guckst Du auch hier
    http://de.wikipedia.org/wiki/Entity-Relationship-Modell
    http://sql.idv.edu/thema/dbgrundlagen/beziehungen.htm#5
    http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/chap5.htm

    usw.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Dazu benötigst Du dann jeweils eine Zwischentabelle, die die m:n-Verknüfungen aufnimmt und die ggf. zusätzlichen Bedingungen dazu speichert.

      Danke