[Thema] [MySQL] Datenbank ok?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Kritiker, 5. März 2007 .

  1. 5. März 2007
    [MySQL] Datenbank ok?

    hallo! da wir im informatikunterricht zur zeit datenbanken bzw. MySQL behandeln, frage ich euch, ob folgende datenbank (musiksammlung), also vom konzept her, in ordnung ist.

    Datenbank: Musik

    Tabelle1: CDs
    CDID tinyint
    CDTitel varchar(60)
    InterpretID tinyint
    LabelID tinyint

    Tabelle2: Interpreten
    InterpretID tinyint
    InterpretName varchar(60)

    Tabelle3: Lieder
    LiedID int
    LiedTitel varchar(60)
    auf_CDID tinyint
    InterpretID tinyint

    Tabelle4: Labels
    LabelID tinyint
    LabelName varchar(60)
    Land varchar(60)

    ich habe einige male tinyint verwendet, weil ich soweiso unter dem limit von 127 bzw. 255 bleiben werde...
    die datenbank ist soweit gefüllt, doch leider weiß ich nicht, wie man die einzelnen tabellen miteinander verknüpft. ich habe im MySQL-referenzhandbuch was von primärschlüsseln bzw. schlüsseln allgemein gelesen, aber mir wird nicht klar, welche funktion sie beseitzen wie ich sie eventuell einfügen soll.

    ich hoffe auf eure hilfe!!

    MfG neger187​
     
  2. 5. März 2007
    AW: [MySQL] Datenbank ok?

    Hier mal mein Vorschlag, kann dir das morgen auch ncoh malen, wenn du magst

    cds
    id INT AUTO_INCREMENT PRIMARY KEY
    artist_id INT
    genre_id INT
    name VARCHAR(255)

    artists
    id INT AUTO_INCREMENT PRIMARY KEY
    name VARCHAR(255)

    songs
    id INT AUTO_INCREMENT PRIMARY KEY
    cd_id INT
    name VARCHAR(255)

    genres
    id INT AUTO_INCREMENT PRIMARY KEY
    name VARCHAR(255)

    Die Primärschlüssel sorgen dafür, dass man mit der Spalte (id) die Datensätze eindeutig identifizieren kann.
    Du solltest zusätzlich auf jedes Feld, dass du oft in einer WHERE-Bedingung verwenden willst, einen Index legen.

    Bei einer so kleinen Datenbank wie deiner macht es übrigens nicht wirklich einen Unterschied, ob du INT oder TINYINT nimmst

    // edit:
    Das Autoinkrement sorgt dafür, dass jeder neue Datensatz automatisch eine eindeutige ID kriegt.
     
  3. 10. März 2007
    AW: [MySQL] Datenbank ok?

    ich hab die datenbank jetzt nochmal leicht überabreitet:

    Tabelle: CDs
    Code:
    # Datei zum Erzeugen der Tabelle "CDs".
    
    create table CDs(
    CDID tinyint,
    CDTitel varchar(60),
    InterpretID tinyint,
    Jahr year,
    LabelID tinyint,
    primary key (CDID)
    )
    ;

    Tabelle: Interpreten
    Code:
    # Datei zum Erzeugen der Tabelle "Interpreten".
    
    create table Interpreten(
    InterpretID tinyint,
    InterpretName varchar(60),
    OrtID tinyint,
    primary key (InterpretID)
    )
    ;

    Tabelle: Bewertungen
    Code:
    # Datei zum Erzeugen der Tabelle "Bewertungen".
    
    create table Bewertungen(
    CDID tinyint,
    InterpretID tinyint,
    Bewertung tinyint
    )
    ;

    Tabelle: Labels
    Code:
    # Datei zum Erzeugen der Tabelle "Labels".
    
    create table Labels(
    LabelID tinyint,
    LabelName varchar(60),
    Land varchar(60),
    primary key (LabelID)
    )
    ;

    Tabelle: Lieder
    Code:
    # Datei zum Erzeugen der Tabelle "Lieder".
    
    create table Lieder(
    LiedID int,
    LiedTitel varchar(60),
    auf_CDID tinyint,
    InterpretID tinyint,
    primary key (LiedID)
    )
    ;

    Tabelle: Orte
    Code:
    # Datei zum Erzeugen der Tabelle "Orte".
    
    create table Orte(
    OrtID tinyint,
    Stadt varchar(60),
    primary key (OrtID)
    )
    ;

    ich hab jetzt nur noch ein problem: soll ich für die bewertungen der cds extra eine eigene tabelle erstellen, oder reicht es, wenn ich der tabelle "cds" eine spalte namens "bewertungen" hinzufüge?

    die datenbank wurde schon mit daten gefüllt und abfragetechnisch funktioniert soweit alles!
     
  4. 30. März 2007
    AW: [MySQL] Datenbank ok?

    Falls du dies noch nicht getan haben solltest kannst du ja mal bei Wikipedia die Normalisierung von Datenbanken nachschlagen ( 1. Normalform, 2. Normalform ... usw).

    Hab wenig Lust das hier rein zu kopieren da das ein wenig viel Text werden würde

    Ist eigentlich sehr gut erklärt und sollte für jemanden der Datenbanken von Text-Dateien unterscheiden kann eigentlich zu meistern sein.

    Es reicht eig. schon bis zur 3. Normalform zu gehen weil das danach nur noch Feinheiten sind
     
  5. 6. April 2007
    AW: [MySQL] Datenbank ok?

    Warum machst du nich alles in eine Tabelle?
    warum für Interpreten, Titel etc. eine eigene Tabelle anlegen. Mach doch in die Tabelle mit den Alben Felder für Bewertung, Lieder, Dauer und so weiter rein.
     
  6. 6. April 2007
    AW: [MySQL] Datenbank ok?

    weil die datenbank dann nicht normnalisiert wäre bzw. in der o. normalform vorliegt, was zu problemen wie datenredundanz führen kann.
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.