summaryrefslogtreecommitdiff
path: root/projects/3/ddl.sql
blob: 4a264cfcfecb98442987139da02c18d166e81459 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
create table categories(
  id integer primary key asc,
  title varchar(16) unique not null,
  description varchar(255) not null,
  created_at datetime default current_timestamp,
  updated_at datetime default current_timestamp
);

create table customers(
  id integer primary key asc,
  first_name varchar(255) not null,
  last_name varchar(255) not null,
  address text,
  created_at datetime default current_timestamp,
  updated_at datetime default current_timestamp
);

create table media(
  id integer primary key asc,
  title varchar(255) unique not null,
  m_type varchar(255) check(m_type in ('blu-ray', 'dvd', 'game')) not null default('dvd'),
  category_id integer not null,
  created_at datetime default current_timestamp,
  updated_at datetime default current_timestamp,
  foreign key(category_id) references categories(id)
);

create table rentals(
  id integer primary key asc,
  rented_at datetime not null,
  due_at datetime not null,
  customer_id integer not null,
  media_id integer not null,
  created_at datetime default current_timestamp,
  updated_at datetime default current_timestamp,
  foreign key(media_id) references media(id),
  foreign key(customer_id) references customers(id)
);

create index index_media_on_category_id on media(category_id);
create index index_rentals_on_customer_id_and_media_id on rentals(customer_id, media_id);

.schema