ookunirina / my_cinema_record

0 stars 0 forks source link

Er #3

Closed ookunirina closed 1 year ago

ookunirina commented 1 year ago

ER図を作成しました. レビューをお願いいたします。 Image from Gyazo

技術面談にて「テーブルが少ないので増やして下さい」との事でしたので、 Likes:いいねを管理するテーブル、Tags: タグを管理するテーブル、それに伴うMovie_tags: MovierecordsとTagsを紐づけるための中間テーブル、Schedules: 映画関係の予定管理テーブルを追加しました。 上記の関係によりREADMEに記載した内容を変更しました。

Users: ユーザー情報を管理するテーブル id name: ユーザの名前 email: ユーザーのメールアドレス avatar: プロフィール写真 crypted_password: ハッシュ化されたパスワード salt: ハッシュ時のsalt reset_password_token: パスワードリセット時のトークン reset_password_token_expires_at: パスワードリセット時のトークン作成日時 reset_password_email_sent_at: パスワードリセットのメール送信日時 access_count_to_reset_password_page: パスワードリセット画面にアクセスした回数 created_at: 作成日 updated_at: 更新日 (gem sorceryを使用する予定です)

Movierecords: ユーザーが見た映画の記録を管理するテーブル id user_id: ユーザーの外部キー title: 映画のタイトル image_url: ユーザーが持つ半チケの写真もしくは、ムビチケ写真(近くに文章を書いて映画のポスター画像にしないようにしてもらう) genre: 映画のジャンル star: 星評価(5段階評価) tag: タグ review: 感想 created_at: 作成日 updated_at: 更新日

Recommendations: ユーザーがおすすめする映画情報を管理するテーブル id user_id: ユーザーの外部キー movie_image:映画のポスター画像 movie_title: 映画のタイトル movie_genre: 映画のジャンル created_at: 作成日 updated_at: 更新日

Likes:いいねを管理するテーブル id user_id: ユーザーの外部キー movierecords_id: ユーザーが見た映画の記録の外部キー created_at: 作成日 updated_at: 更新日

Tags: タグを管理するテーブル Id name:タグ名

Movie_tags: MovierecordsとTagsを紐づけるための中間テーブル Id movierecords_id: ユーザーが見た映画の記録の外部キー tag_id: タグの外部キー

Schedules: 映画関係の予定管理テーブル Id user_id: ユーザーの外部キー title: タイトル content: 内容 start_time: 日付時刻 (gem SimpleCalendarを使用する予定です)

質問点 星評価(5段階評価)をこちら https://kina-kq.hatenablog.com/ で実装予定なのですがMovierecordsテーブルでstar(カラム)としていますがstar:integerとすれば良いのでしょうか?

TMDb API使用し映画のマスターデータを集めて 映画のポスター画像、映画のタイトル、映画のジャンルを表示する様にするにですが、 Recommendationsテーブルにて movie_image: string映画のポスター画像 movie_title: string映画のタイトル movie_genre 映画のジャンル Movierecordsテーブルにて title:stringtitle: 映画のタイトル genre:integer: 映画のジャンル としていますがカラムとデータ型をどの様にすれば良いかわからないです。

takyyk commented 1 year ago

MovierecordsやRecommendationsに映画の情報が入っていますが、映画情報を管理するテーブルは作らないのですかね? 星評価(5段階評価)はenumを使うのならintegerで良いと思います。

ookunirina commented 1 year ago

レビューありがとうございます。

MovierecordsやRecommendationsに映画の情報が入っていますが、映画情報を管理するテーブルは作らないのですかね?

TmdbMovies: TMDb APIから取得した映画情報を管理するテーブル Id user_id: ユーザーの外部キー title: stringタイトル poster_path: string映画のポスター画像 genre: stringジャンル を新しく作成する考えですがいかがでしょうか?

星評価(5段階評価)はenumを使うのならintegerで良いと思います。

承知しました。 star:integerといたします。

takyyk commented 1 year ago

@ookunirina 良いと思います!上記を加えた上でER図を再作成してみてください。

ookunirina commented 1 year ago

再作成したER図です。 レビューをお願いいたします。 image

Users: ユーザー情報を管理するテーブル id name: ユーザの名前 email: ユーザーのメールアドレス avatar: プロフィール写真 crypted_password: ハッシュ化されたパスワード salt: ハッシュ時のsalt reset_password_token: パスワードリセット時のトークン reset_password_token_expires_at: パスワードリセット時のトークン作成日時 reset_password_email_sent_at: パスワードリセットのメール送信日時 access_count_to_reset_password_page: パスワードリセット画面にアクセスした回数 created_at: 作成日 updated_at: 更新日 (gem sorceryを使用する予定です)

Movierecords: ユーザーが見た映画の記録を管理するテーブル id user_id: ユーザーの外部キー title: 映画のタイトル image_url: ユーザーが持つ半チケの写真もしくは、ムビチケ写真(近くに文章を書いて映画のポスター画像にしないようにしてもらう) genre: 映画のジャンル star: 星評価(5段階評価) tag: タグ review: 感想 created_at: 作成日 updated_at: 更新日

Recommendations: ユーザーがおすすめする映画情報を管理するテーブル id user_id: ユーザーの外部キー poster_path:映画のポスター画像 title: 映画のタイトル genre: 映画のジャンル created_at: 作成日 updated_at: 更新日

Tmdbmovies: TMDb APIから取得した映画情報を管理するテーブル Id user_id: ユーザーの外部キー title: 映画のタイトル poster_path: 映画のポスター画像 genre: 映画ジャンル

Likes:いいねを管理するテーブル id user_id: ユーザーの外部キー movierecords_id: ユーザーが見た映画の記録の外部キー created_at: 作成日 updated_at: 更新日

Tags: タグを管理するテーブル Id name:タグ名

Movie_tags: MovierecordsとTagsを紐づけるための中間テーブル Id movierecords_id: ユーザーが見た映画の記録の外部キー tag_id: タグの外部キー

Schedules: 映画関係の予定管理テーブル Id user_id: ユーザーの外部キー title: タイトル content: 内容 start_time: 日付時刻 (gem SimpleCalendarを使用する予定です)

murata0705 commented 1 year ago

良さそうです 👍🏻 次の課題に進みましょう