0W5E8fPq1EOm4yE
@0W5E8fPq1EOm4yE (Nishio)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

オリジナルアプリDB設計について

Discussion

現在、オリジナルアプリを作成しており、DB設計を行っています、より質の高いものにするために意見等いただければと思います。

画面設計図
https://drive.google.com/file/d/1r3I55ORVj4FX7yrdA1X84chDVFp_j5bd/view?usp=sharing

画面遷移図
オリジナルアプリ.png

DB設計
オリジナルアプリDB設計.png

概要
・英会話を学習している人同士でコミュニケーションや気づきなどを共有できる仲間を作るサービス
・アウトプットする場
・単語やフレーズの一覧を共有する場

使用技術
●バックエンド
・ruby 2.7.1
・Rails 6.0.0
・MySQL 5.6.50

●フロントエンド
・HTML / SCSS
・javascript

●開発環境
・VScode
・Docker
・RuboCop

●CI/CD
・CircleCI
・Capistrano

●バージョン管理
・git、github

●インフラ
・AWS(S3)
・Nginx/Unicorn

●テスト
・Rspec

0

一案として

  • relationshipsmessagesの関連をなくす
  • messagesの主キーとしてmessage_idを追加、user_idを削除
    • message_idをもってtweetcommentswordcommentsphrasecommentsと関連づける
    • 具体的には、wordcommentsの列定義を、word_idcomment_user_idmessage_idとする
    • phrasecommentstweetcommentsも同様の措置をとる(結果tweetcommentstextも削除)
  • 一つのwords等のレコードに対して、コメントリレーのような1:N関連となる可能性を想定して、messagesに作成日時(投稿日時)を持たせる
  • messagesとの関連を剥がされたrelationshipsは純粋にfollowefollowee関係にとどめさせる
  • ダイレクトメッセージのためのエンティティを新規作成する
    • 構造は、phrasecommentsと同じでも問題なさそう
  • 各種コメントの交差エンティティが同じ構造となるが、一つのエンティティにしないほうが良い
    • カーディナリティが低下するため

思いつく感じだとこんなところか

1Like

Your answer might help someone💌