Frage

ist dies in 3NF?

create table movies( 
  id numeric primary key not null default autoincrement,
  name varchar(50) not null, 
  release-date Date, 
  price numeric, 
  rating numeric,
  length numeric,
  description varchar(1500)
);

create table movies( 
  id numeric primary key, 
  name varchar(20) 
);

create table genre(
  name varchar(20) primary key
);

create table directors(
  id numeric primary key not null default autoincrement, 
  first-name varchar(32) not null, 
  last-name varchar(32) not null, 
  gender varchar(8), 
  dob Date, 
  biography varchar(1000)
);

create table movie-Star(
  id numeric primary key not null default autoincrement, 
  first-name varchar(20) not null, 
  last-name varchar(20) not null,
  gender varchar(8), 
  dob Date, 
  hometown varchar(20)
);

create table movies-cast(
  movie-id numeric references movies(id), 
  actor-id numeric references movie-Star(id), 
  role varchar(32), 
  primary key (movie-id, actor-id)
);

Create table Studio( 
  studio-id numeric references directors(id)
  Directer-name varchar(20) not null
  name varchar(20) primary key
);

create table directors(
  id numeric primary key not null default autoincrement, 
  first-name varchar(32) not null, 
  last-name varchar(32) not null, 
  gender varchar(8), 
  dob Date, 
  biography varchar(1000)
);
War es hilfreich?

Lösung

Es sieht ziemlich gut strukturiert. Ich sehe keine Normalisierung Probleme. Allerdings:

  • Filme und Regisseure Tabellen werden zweimal erstellt.
  • Genre Tabelle ist nicht für alles verwendet (vermutlich in Filmen sein sollte).
  • Same mit Studios.
  • Aktuelle Anordnung erlaubt nur ein Direktor pro Studio. Dies sollte wahrscheinlich sein A) ein Studio pro Direktor (studio_id Spalt Direktoren) oder eher B) many-to-many-Beziehung zwischen Studio und Regisseur hinzufügen (add new studio_directors Tabelle).
  • Aktuelle Anordnung nicht Associate Director mit Film.
  • Das könnte Sie betrachten Director und Filmstart in einer Tabelle die Kombination namens Talent. Sie haben Datenduplizierung in dem ein Stern ist auch ein Direktor. Dies ist das größte Normalisierung Problem mit Ihrem Design.

Andere Tipps

, wenn alle nicht wieder dann dupliziert werden wird 3NF enthalten. stellen Sie sicher, es gibt keine doppelten Daten wieder

Es hat e PK, so dass es in 1NF ist. Es ist PK ist nicht zusammengesetzt, so dass es in 2NF ist. Alle Spalten sind abhängig von nichts als der Schlüssel, so dass es in 3NF ist. Es gibt keine andere Tasten als PK, so ist es in BCNF.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top