Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 45 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,46 @@
# java-filmorate
Template repository for Filmorate project.

![scheme](/scheme.png)


--Examples of SQL requests:

--READ
```SQL
--("/films/{id}")
SELECT *
FROM "films"
WHERE "film_id" = id;

--("/films/popular")
SELECT *
FROM "films"
ORDER BY "likes_count" DESC
LIMIT(10);

--("/users")
SELECT *
FROM "users";


--("/users/{id}")
SELECT *
FROM "users"
WHERE "user_id" = id;

--("/users/{id}/friends")
SELECT *
FROM "friends" fr
INNER JOIN "users" u ON fr."friend_id"=u."user_id"
WHERE fr."user_id" = id;

--("/users/{id}/friends/common/{otherId}")
SELECT *
FROM "users" us
INNER JOIN (SELECT fr."user_id"
FROM "friends" fr
INNER JOIN "users" u1 ON fr."friend_id"=u1."user_id"
INNER JOIN "users" u2 ON fr."friend_id"=u2."user_id"
WHERE u1."user_id" = id
AND u2."user_id" = otherId) friends ON us."user_id"=friends."user_id";
```
17 changes: 11 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,24 @@
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
<version>2.1.212</version>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>

Expand Down
Binary file added scheme.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
61 changes: 61 additions & 0 deletions scheme.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
CREATE TYPE "genre" AS ENUM (
'COMEDEY',
'DRAMA',
'CARTOON',
'THRILLER',
'DOCUMENTARY',
'ACTION'
);

CREATE TYPE "mpa" AS ENUM (
'G',
'PG',
'PG13',
'R',
'NC'
);

CREATE TABLE "users" (
"user_id" int4 PRIMARY KEY,
"email" varchar(50),
"login" varchar(30),
"name" varchar(100),
"birthday" date
);

CREATE TABLE "friends" (
"id" int4 PRIMARY KEY,
"user_id" int4,
"friend_id" int4
);

CREATE TABLE "likes" (
"id" int4 PRIMARY KEY,
"user_id" int4,
"film_id" int4
);

CREATE TABLE "films" (
"film_id" int4 PRIMARY KEY,
"name" varchar(50),
"description" varchar(150),
"release_date" date,
"duration" int2,
"rate" int4,
"mpa" mpa,
"likes_count" int4
);

CREATE TABLE "genres" (
"id" int4 PRIMARY KEY,
"film_id" int4,
"genre" genre
);

ALTER TABLE "genres" ADD FOREIGN KEY ("film_id") REFERENCES "films" ("film_id");

ALTER TABLE "friends" ADD FOREIGN KEY ("user_id") REFERENCES "users" ("user_id");

ALTER TABLE "likes" ADD FOREIGN KEY ("user_id") REFERENCES "users" ("user_id");

ALTER TABLE "likes" ADD FOREIGN KEY ("film_id") REFERENCES "films" ("film_id");
Loading