===== Lösung von Aufgabe 3: Autovermietung ===== Eine Autovermietung hat einen Fuhrpark voller Autos, die zu unterschiedlichen Typen gehören (z.B. BMW i3, VW Passat, ...). Sie werden gegen eine - je nach Typ unterschiedliche - tägliche Gebühr vermietet. Das Unternehmen benötigt eine Datenbank, in der die Daten seiner Autos (Kennzeichen, Typ) und seiner Kunden (Rufname, Familienname, Anschrift, Telefnonummer) gespeichert werden sollen. Zudem will es wissen, welcher Kunde wann (von ... bis) welches Auto entliehen oder reserviert hat und ob die Gebühr schon bezahlt ist. - Zeichne das Klassendiagramm. - Erstelle das Datenbankschema. ==== Möglichkeit 1: n:m-Relation mit Attributen ==== {{ :jg10:modellierung10:autovermietung:pasted:20221007-151354.png?500 }} == Datenbankschema: == * **Kundin** [__id: int__, rufname: varchar(80), familienname: varchar(100), strasse: varchar(30), hausnummer: varchar(6), plz: varchar(5), ort: varchar(50), telefonnummer: varchar(40)] * **Typ** [__id: int__, name: varchar(30), tagesgebuehr: decimal(8, 2)] * **Auto** [__id: int__, **typ_id: int**] * **mietet** [**__kundin_id: int__**, **__auto_id: int__**, von: timestamp, bis: timestamp, bezahlt: boolean] \\ ==== Möglichkeit 2: extra Tabelle "Mietvorgang" ==== {{ :jg10:modellierung10:autovermietung:pasted:20221007-151718.png?500 }} == Datenbankschema: == * **Kundin** [__id: int__, rufname: varchar(80), familienname: varchar(100), strasse: varchar(30), hausnummer: varchar(6), plz: varchar(5), ort: varchar(50), telefonnummer: varchar(40)] * **Typ** [__id: int__, name: varchar(30), tagesgebuehr: decimal(8, 2)] * **Auto** [__id: int__, **typ_id: int**] * **mietvorgang** [__id: int__, **kundin_id: int**, **auto_id: int**, von: timestamp, bis: timestamp, bezahlt: boolean]