summaryrefslogtreecommitdiff
path: root/projects/3/ddl.sql
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-01-13 22:47:09 -0700
committermo khan <mo@mokhan.ca>2025-01-13 22:47:09 -0700
commit3b7cc65e3fe5e66dcf77bee4045d9f5c7ce0f846 (patch)
tree6f34bf45733c4536509689e8ed663b2c83a3087b /projects/3/ddl.sql
parente4cb765cd6a9b5932122a72ca4b142649858c37e (diff)
Split sql files
Diffstat (limited to 'projects/3/ddl.sql')
-rw-r--r--projects/3/ddl.sql43
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