main
 1create table categories(
 2  id integer primary key asc,
 3  title varchar(16) unique not null,
 4  description varchar(255) not null,
 5  created_at datetime default current_timestamp,
 6  updated_at datetime default current_timestamp
 7);
 8
 9create table customers(
10  id integer primary key asc,
11  first_name varchar(255) not null,
12  last_name varchar(255) not null,
13  address text,
14  created_at datetime default current_timestamp,
15  updated_at datetime default current_timestamp
16);
17
18create table media(
19  id integer primary key asc,
20  title varchar(255) unique not null,
21  m_type varchar(255) check(m_type in ('blu-ray', 'dvd', 'game')) not null default('dvd'),
22  category_id integer not null,
23  created_at datetime default current_timestamp,
24  updated_at datetime default current_timestamp,
25  foreign key(category_id) references categories(id)
26);
27
28create table rentals(
29  id integer primary key asc,
30  rented_at datetime not null,
31  due_at datetime not null,
32  customer_id integer not null,
33  media_id integer not null,
34  created_at datetime default current_timestamp,
35  updated_at datetime default current_timestamp,
36  foreign key(media_id) references media(id),
37  foreign key(customer_id) references customers(id)
38);
39
40create index index_media_on_category_id on media(category_id);
41create index index_rentals_on_customer_id_and_media_id on rentals(customer_id, media_id);
42
43.schema