有人可以说我的 E-R 图是否错误?

问题描述

drop database if exists movie_rentals;

create database movie_rentals;
use movie_rentals;

create table movie (
  movie_id int,title varchar(255),release_year year,length int,rating enum('G','PG','PG-13','R','NC-17'),category varchar(255),primary key(movie_id)
);

create table actor (
  actor_id int,first_name varchar(255),last_name varchar(255),primary key(actor_id)
);

create table movie_actor (
  movie_id int,actor_id int,primary key(movie_id,actor_id),foreign key(movie_id) references movie(movie_id),foreign key(actor_id) references actor(actor_id)
);

create table customer (
  customer_id int,address varchar(255),postal_code varchar(255),district varchar(255),city varchar(255),country varchar(255),primary key(customer_id)
);

create table rental (
  rental_id int,customer_id int,movie_id int,rental_date datetime,amount decimal(5,2),primary key(rental_id),foreign key(customer_id) references customer(customer_id),foreign key(movie_id) references movie(movie_id)
);

我的提议:

image

我不确定电影和电影演员之间的双线。我试图在 MysqL 上做一些测试,看看我是否可以在 movie_actor 表中插入没有演员的电影,但我不能。

解决方法

您选择为主键的列不允许为 NULL。 所以在这种情况下,movie_actor 需要同时填写movie_id 和actor_id。