Schnaps: Brainstorming für Kinoprogramm Script

Servus

Ich schreibe gerade ein Script für ein Kino in dem die Betreiber ihre Vorstellungen für jedes Kino selber eintragen können.

Was ich bereits habe ist die normale eingabe aller Daten zu einem Film wie Regie,Länge,FSK,Bilder...  alle diese Daten werden in einer mySQL Tabelle gespeichert und jeder Film hat so eine ID.

Also ich kann jeden Film mit all seinen Daten über eine ID:film_id ansprechen.

Worüber ich mir gerade den Kopf zerbreche ist die Datenbank Strucktur für die Tabelle in der das Programm gespeichert wird.

Hatte es so geplant:

Tabelle: Programm

Felder: id , film_id , kino_nr , zeit (Als Timestamp)

Haltet ihr die Datenstrucktur für OK?

Welche Features würded ihr euch wünschen für so ein Script wenn ihr dort wöchentlich alle Filme eintragen müßt?

Es werden pro Tag so ca. maximal 5 Vorstellungen sein pro Kino schätze ich, das macht bei 6 Kinos   => 30 Einträge pro Tag. Stellt das ein Problem da von der Menge her? Aber ist je eigentlich recht klein der Eintrag und ein Forum zum Beispiel hat da ja erheblich mehr Zeilen in der Datenbank.

Würde das hier gerne als Ideensammlung laufen lassen, wäre sehr nett wenn ihr ein paar Ideen beisteuern würdet.

Danke
Schnaps

  1. Hallo Schnaps!

    Was hältst du von folgenden Tabellen und ERD?

    |Kinobetreiber| 1--n |Kinosaal|

    |Kinosaal| 1--n |Programm| n--1 |Film| n--1 |Genre|

    |Film| 1--n |Darsteller| n--1 |Schauspieler|

    +---------------+
     | Kinobetreiber |
     +---------------+---+
     | ID                |
     | Name              |
     | Strasse           |
     | PLZ               |
     | Ort               |
     | Tel_Kontakt       |
     | Tel_Kartenbest.   |
     | Fax_Kontakt       |
     | Fax_Kartenbest.   |
     | Homepage          |
     | eMail             |
     | Bemerkung         |
     +-------------------+

    +----------+
     | Kinosaal |
     +----------+--------+
     | ID                |
     | Kinobetreiber_ID  |
     | Name              |
     | Stockwerk         |
     +-------------------+

    +----------+
     | Programm |
     +----------+--------+
     | Kinosaal_ID       |
     | Film_ID           |
     | Tag_Start         |
     | Tag_Ende          |
     | Uhrzeit_Start     |
     | Preis_Normal      |
     | Preis_Ermässigt   |
     +-------------------+

    +------+
     | Film |
     +------+------------+
     | ID                |
     | Genre_ID          |
     | Regie             |
     | Land              |
     | Jahr              |
     | Länge             |
     | FSK               |
     | Beschreibung      |
     +-------------------+

    +-------+
     | Genre |
     +-------+-------------+
     | ID                |
     | Name              |
     +-------------------+

    +--------------+
     | Schauspieler |
     +--------------+----+
     | ID                |
     | Name              |
     +-------------------+

    +------------+
     | Darsteller |
     +------------+------+
     | Film_ID           |
     | Schaupieler_ID    |
     +-------------------+

    Grüsse,

    Sky

    1. Hallo!

      Also mir gefällt sie schon ziemlich gut. Allerdings müßten Regie, FSK und Land wohl auch über eigene Tabellen laufen (macht ME gerade bei den letzten beiden Sinn). Weiterhin würde ich die Schauspielernamen noch in Name und Vorname unterteilen. Ein Feld "Adreßzusatz" beim Betreiber ("am Musterplatz") kann auch nicht schaden.

      Die Preise machen in der Programm-Tabelle vielleicht nicht so viel Sinn, da sie meist ja ohnehin für alle Filme gleich sind und in einer eigenen Preisliste dargestellt werden. Man könnte halt höchstens eine Art Marker setzen, um dann aus der Vorstellungszeit und den Markern (Überlänge, Doppelvorstellung, ...) automatisch den individuellen Preis zu berechnen.

      Sehe ich es außerdem richtig, daß die Programmtabelle keinen  Primärschlüssel hat?

      Gruß

      Matthias

      --
      ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
      http://www.makaio.de/quotations
      1. Hallo Matthias

        Also mir gefällt sie schon ziemlich gut. Allerdings müßten Regie, »» FSK und Land wohl auch über eigene Tabellen laufen (macht ME
        gerade bei den letzten beiden Sinn). Weiterhin würde ich die
        Schauspielernamen noch in Name und Vorname unterteilen. Ein Feld
        "Adreßzusatz" beim Betreiber ("am Musterplatz") kann auch nicht schaden.

        Ich wollte es nicht zu detailiert machen, schließlich soll "Schnaps" ja auch noch was zu tun haben. ;-)

        [Preise: Ort]
        Man könnte halt höchstens eine Art Marker setzen, um dann aus der
        Vorstellungszeit und den Markern (Überlänge, Doppelvorstellung,

        ...)

        automatisch den individuellen Preis zu berechnen.

        Und was ist mit Sondervorstellungen á la "Sneak Preview", etc.?

        Sehe ich es außerdem richtig, daß die Programmtabelle keinen
        Primärschlüssel hat?

        Ja. Es ist ja eine Verknüpfungstabelle, soll heissen, sie verbindeten Datensätze aus zwei anderen Tabellen. Somit enthält sie schon jeweils die Primärschlüssel der beiden anderen. Man müsste mindestens ein (Unique-)Index über die beiden Spalten mit den IDs (bzw. Foreignkeys) legen, oder natürlich gänge auch ein Primärschlüssel über beide Spalten.

        Grüsse,

        Sky

        1. Hallo!

          Und was ist mit Sondervorstellungen á la "Sneak Preview", etc.?

          Wäre halt ein eigener Marker (z.B. mit einem "negativen Preis", der dann zum regulären addiert wird).

          Ja. Es ist ja eine Verknüpfungstabelle, soll heissen, sie verbindeten Datensätze aus zwei anderen Tabellen. Somit enthält sie schon jeweils die Primärschlüssel der beiden anderen. Man müsste mindestens ein (Unique-)Index über die beiden Spalten mit den IDs (bzw. Foreignkeys) legen, oder natürlich gänge auch ein Primärschlüssel über beide Spalten.

          Aber die haben doch auch eindeutige Schlüssel. Was ist denn z.B., wenn ein Film vom 1.-13. jeweils um 16 und 19 Uhr und nochmal vom 18.-25. jeweils zu den gleichen Zeiten im gleichen Saal läuft? Dann müßtest du den Schlüssel schon auf vier Felder ausdehnen.

          Gruß

          Matthias

          --
          ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
          http://www.makaio.de/quotations
          1. Hallo Matthias!

            [...]

            Aber die haben doch auch eindeutige Schlüssel. Was ist denn z.B., wenn ein Film vom 1.-13.
            jeweils um 16 und 19 Uhr und nochmal vom 18.-25. jeweils zu den gleichen Zeiten im gleichen Saal läuft? Dann müßtest du den Schlüssel schon auf vier Felder ausdehnen.

            Ja, stimmt, das hatte ich übersehen. Also doch eine weitere Spalte "ID" als Primärschlüssel.

            Grüsse,

            Sky

    2. +----------+
       | Programm |
       +----------+--------+
       | Kinosaal_ID       |
       | Film_ID           |
       | Tag_Start         |
       | Tag_Ende          |
       | Uhrzeit_Start     |
       | Preis_Normal      |
       | Preis_Ermässigt   |
       +-------------------+

      Um diese Tabelle ging es mir im wesentlichen!

      Ok, stimmt. Über die letzten beiden Zeilen muß ich eventuell mal nachdenken. Ist eine gute Idee noch eine Kennzeichnung für Übelänge ein zu führen.

      Meinst du mit Tag_Anfang  bzw Tag_Ende das Datum wann die das erste bzw das letzte mal laufen?

      Halte ich für nicht so gut dann, da die Betreiber meinten das sie für jedes Kino (Saal) für jeder Uhrzeit einen Film einstellen wollen können.

      Da der Kinderfilm um 15:00 in dem großen Kino läuft um 20:00 aber dafür nur noch in einem kleinen Kino.

      +------+
       | Film |
       +------+------------+
       | ID                |
       | Genre_ID          |
       | Regie             |
       | Land              |
       | Jahr              |
       | Länge             |
       | FSK               |
       | Beschreibung      |
       +-------------------+
       +-------+
       | Genre |
       +-------+-------------+
       | ID                |
       | Name              |
       +-------------------+

      Die beiden Tabellen habe ich genau so implementiert gehabt!
      Immer beruhigend wenn es jemand genau so gemacht hätte.

      Danke für deine Idee!

      Gibt es noch Features die eurer Meinung nach auf jeden Fall da sein sollten?

      1. Hallo!

        Meinst du mit Tag_Anfang  bzw Tag_Ende das Datum wann die das erste bzw das letzte mal laufen?

        Halte ich für nicht so gut dann, da die Betreiber meinten das sie für jedes Kino (Saal) für jeder Uhrzeit einen Film einstellen wollen können.

        So sparst du dir (und insb. den Betreibern) aber, 31 Einträge anzulegen, wenn ein Film einen Monat (mit 31 Tagen) lang jeden Tag zur gleichen Zeit im gleichen Saal läuft.
        Es hindert dich dann niemand daran, drei Einträge draus zu machen, wenn er am 16. früher läuft (1.-15.; 16.; 17.-31.).

        Gruß

        Matthias

        --
        ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
        http://www.makaio.de/quotations
      2. Hallo Schnaps!

        [Tabelle: Programm]
        ...
        | Tag_Start         |
        | Tag_Ende          |
        ...

        Meinst du mit Tag_Anfang  bzw Tag_Ende das Datum wann die das
        erste bzw das letzte mal laufen?

        Ja, genau.

        Halte ich für nicht so gut dann, da die Betreiber meinten das sie für jedes
        Kino (Saal) für jeder Uhrzeit einen Film einstellen wollen können.

        Da der Kinderfilm um 15:00 in dem großen Kino läuft um 20:00 aber
        dafür nur noch in einem kleinen Kino.

        Eben: Ein Eintrag: von x bis y um 15:00 im Kinosaal A
              und einen:   von x bis y um 20:00 im Kinosaal B

        Evtl. kann es auch vorkommen, das ein Kinobetreiber einen Film nur einmalig bzw. nur an einem Termin vorführen will.
        Hierbei wäre es ratsam, wenn du die Bedienerschnittstelle so konstruieren würdest, dass der Kinobetreiber zwischen einmalig und Zeitraum auswählen kann. Das Programm hinter der Oberfläche könnte dann für eine einmalige Vorführung für "Tag_Start" und "Tag_Ende" die selben Werte speichern.

        [...]

        Die beiden Tabellen habe ich genau so implementiert gehabt!
        Immer beruhigend wenn es jemand genau so gemacht hätte.

        Danke für deine Idee!

        Bitte, gern geschehen.

        Grüsse,

        Sky

    3. Hi,

      +----------+
      | Kinosaal |
      +----------+--------+
      | ID                |
      | Kinobetreiber_ID  |
      | Name              |
      | Stockwerk         |

      | Sitzplätze        |

      +-------------------+

      ich finde die Datenstruktur von Sky eigentlich auch ganz gut. Ich würde nur zum Kinosaal noch eine zusätzlich Information einbauen (die Anzahl der Plätze), damit - vielleicht später mal - eine automatische Anzeige der freien Plätze ausgegeben werden kann, wenn der Verkauf auch Computergestützt läuft.

      Thats All Folks
       eb4

      1. Hallo!

        Tolle Idee, dann aber auch bitte nach Kategorie geordnet ;-)

        Gruß

        Matthias

        --
        ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
        http://www.makaio.de/quotations
      2. Hallo eb4!

        ich finde die Datenstruktur von Sky eigentlich auch ganz gut.

        Danke!

        Ich würde nur zum Kinosaal noch eine zusätzlich Information einbauen (die Anzahl der Plätze),
        damit - vielleicht später mal - eine automatische Anzeige der freien Plätze ausgegeben werden
        kann, wenn der Verkauf auch Computergestützt läuft.

        Ich würde jedoch eine Weitere Tabelle "Sitzplatz" hinzufügen und diesem mit der Tabelle "Kinosaal" verknüpfen.
        Schließlich haben Sitzplatze auch Nummern, Postionen/Reihe. Bei einer Reservierung will man ggf. falls auch einen bestimmten Sitzplatz reservieren. (Dies ist aber in vielen kleinen Kinos nicht die Praxis, dort wird einfach ein Platz ohne Nummer reserviert bzw. verkauft.)

        Grüsse,

        Sky