Filmdatenbank - Schulprojekt

  • Hallo an alle!

    Ich bräuchte mal eure Hilfe - und zwar hab ich ein Schulprojekt, was ich mit AutoIT realisieren will. Es handelt sich um eine kleine Filmdatenbank.
    Dazu will ich die SQLite.au3 verwenden.

    So, was soll alles in die Datenbank ein:

    Filmtitel [TEXT]
    Regisseur [TEXT]
    Beschreibung [TEXT]
    Genre [TEXT]
    Bewertung [TEXT]
    Erscheinungsjahr [TEXT]
    Drehort [TEXT]
    Format [TEXT]

    (vielleicht fälllt euch noch mehr ein)

    Wie würdet Ihr jetzt die Tabellen gestalten?
    Wie kann man mit SQLite referienzielle Integrität gewährleisten?

    Mein Problem ist das ich zwar gesehn hab das ich das mit Triggern machen kann, aber absolut nicht durchsteige wie! Meine Datenbank-Kenntnisse sind leider sehr MS ACCESS lastig :(

    Vielleicht hat ja von euch einer ne Idee für n Grundgerüst... ich will nicht das Ihr mir das programmiert, nicht das Ihr mich falsch versteht, aber einfach mal nen Ansatz vielleicht.

    Naja danke schonmal ich hoffe mir kann jemand helfen!


    Grüße

    Oliver

    EDIT: GUI und Funktionen sind kein Problem das bekomm ich alles selbst hin es geht mir wirklich hauptsächlich um das Datenbankdesign mit SQLite

    Einmal editiert, zuletzt von oliverh (4. Dezember 2007 um 13:53)

  • Wie schon gesagt das problem liegt meinerseits nicht an autoit, sondern an SQLite :)

    will halt nicht enifach nur eine tabelle machen, weil ich sonst mehrfacheinträge zum beispiel bei genre oder so bekommen würde... dh. ich würde gerne wissen wie ich die tabellen aufteile und entsprechend miteinander verknüpfe?!?!?!

    danke schonmal

  • ich muss für das projekt die db mit autoit erstellen, dh. mit den entsprechenden _sqlite* funktionen - create table bla bla bla..... mein problem ist echt, und da fängt es schon an damit, dass SQLite keine Fremdschlüssel unterstützt... (damit hab ich es halt gelernt und das ist das was ich halt nunmal kenne)

    ich würde das ganze zeug ja in eine tabelle reinklopfen aber das is auch nicht sinnn der sache, da das hauptaugenmerk auf die referenzielle integrität der tabellen gelegt ist (vorgabe des lehrers)

    wollte auch jetzt eigentlich nur wissen ob einer von euch versteht was ich meine und mir vielleicht irgendn ansatz geben kann den ich nachvollziehen kann, damit ich das projekt möglichst schnell jetzt noch voll auf die reihe bekomm... gui und alles is ja auch schon fertig :)

    also bin auf eure ideen gespannt...

    gruß oli

    2 Mal editiert, zuletzt von oliverh (4. Dezember 2007 um 17:33)

  • Hab mir jetzt mal die Tabellen erstellt, so wie ich denke das es gehen könnte (auch die Trigger) - Könnt Ihr da vielleicht mal drüberkucken und mir sagen ob das so gehen könnte?

    Tabelle "Titel"

    Tabelle "Genre"

    SQL
    CREATE TABLE IF NOT EXISTS Genre (
    GID INTEGER PRIMARY KEY AUTOINCREMENT, 
    Genre TEXT
    );

    Tabelle "Regisseur"

    SQL
    CREATE TABLE IF NOT EXISTS Regisseur (
    RID INTEGER PRIMARY KEY AUTOINCREMENT, 
    Name TEXT
    );

    Tabelle "Format"

    SQL
    CREATE TABLE IF NOT EXISTS Format (
    FID INTEGER PRIMARY KEY AUTOINCREMENT, 
    Format TEXT
    );

    Tabelle "Erscheinungsland"

    SQL
    CREATE TABLE IF NOT EXISTS Erscheinungsland (
    EID INTEGER PRIMARY KEY AUTOINCREMENT, 
    Land TEXT
    );

    Hab mir außerdem gleich die Trigger erstellen lassen (gibt da ne Seite weiß aber den Link nicht mehr)

    Sind alle gleich aufgebaut, deßhalb poste ich jetzt mal nur als Beispiel den für "EID" - nicht wundern das es 3 sind - einer für INSERT, einer für UPDATE und einer für DELETE

    sooooo, meint ihr das das so gehen könnte? ich weiß ist viel zu lesen aber allein schaff ich es glaub echt ned :(

    gruß oli

    • Offizieller Beitrag

    Hallo,

    sieht doch sehr gut aus, was ich noch mit aufnehmen würde ist die Filmlänge und evtl. ein Bemerkungsfeld.

  • alles klar - filmlänge nehme ich noch in die tabelle "titel" mit auf - ein bemerkungsfeld brauch ich ned unbedingt, hab ja schon die filmbeschreibung...

    jetzt hab ich noch eine frage:


    wie schaut da jetzt zB n insetr befehl aus? ich will ja das die IDs jeweils einzigartig sind und automatisch hochgezählt werden. die anderen felder sind kein problem, nur das mit den IDs...


    danke schonmal


    gruß Oli

    • Offizieller Beitrag

    Hallo,

    ist zwar schon ein paar Tage her aber in etwa so:

    SQL
    INSERT INTO Titel (Titel, Beschreibung, Bewertung, Datum, GID, RID, EID, FID) VALUES("Der Titel", "Die Beschreibung", 5, <Datum>, 1,1,1,1 )

    Einfach die TID bei colum-list und value-list weglassen.

  • ahhhh ich wusste doch da war was *lach*

    wie schaut das dann bei den ganzen "frendschlüsseln" aus? du hast da jetzt jeweils "1" eingetragen - aber da müssen ja die gleichen werte stehen wie sie in den jeweiligen tabellen als primärschlüssel angelegt sind?!?

    wenn das jetzt noch genauso leicht ist fress ich nen besen ;)


    grüßle

    • Offizieller Beitrag

    Hallo,

    Du musst doch die 4 Tabellen vorher sowieso auslesen um den Anwender die Möglichkeit zu geben Genre, Regisseur, Format und Erscheinungsland auszuwählen. Dann kannst Du doch die ID gleich mit auslesen und in einem Array speichern. Beim Insert brauchst Du dann nur die ID aus dem Array zu lesen und beim Insert mit anzugeben!

  • genau so hab ich es jetzt auch gelöst!

    so hier mal kurz mein zwischenstand:

    - GUI erstellen - ERLEDIGT
    - Datensatz anlegen - ERLEDIGT
    - Filter mit Eintrag ins Listview - IN ARBEIT
    - Einträge bearbeiten
    - Einträge löschen
    - diverse kleine Verbesserungen - KONTINUIERLICH


    ok ich denke ich werde euch das ganze dann auch bereitstellen wenn es fertig ist!

    (als Anhang mal n kleiner Screenshot wie das ganze aussieht)