diff options
| author | mo khan <mo@mokhan.ca> | 2025-01-13 22:47:09 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-01-13 22:47:09 -0700 |
| commit | 3b7cc65e3fe5e66dcf77bee4045d9f5c7ce0f846 (patch) | |
| tree | 6f34bf45733c4536509689e8ed663b2c83a3087b /projects/3/ddl.sql | |
| parent | e4cb765cd6a9b5932122a72ca4b142649858c37e (diff) | |
Split sql files
Diffstat (limited to 'projects/3/ddl.sql')
| -rw-r--r-- | projects/3/ddl.sql | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/projects/3/ddl.sql b/projects/3/ddl.sql new file mode 100644 index 0000000..4a264cf --- /dev/null +++ b/projects/3/ddl.sql @@ -0,0 +1,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 |
