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