質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

1回答

929閲覧

通知機能を作る上で、通知専用テーブルは不要ではないでしょうか?

gachapon

総合スコア5

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

1クリップ

投稿2020/04/04 07:13

通知機能について知りたいです。
なぜ通知専用のテーブルが必要なのでしょうか?


通知機能を調べていると、次のように「通知を送ったデータ」という通知専用のテーブルを作る方法を見つけました。

ntf_idvisitor_idvisited_idpost_idactionkidoku
通知のidした人のidされた人のidされた投稿のidlikefalse

でも疑問なのですが、上だけでなくいいね等の「アクションのデータ」のテーブルも絶対ありますよね。このような↓

act_idvisitor_idvisited_idpost_idaction
アクションのidした人のidされた人のidされた投稿のidlike

で、この「アクションのデータ」に以下の「kidoku」という既読状況のカラムだけ入れれば、あとはこれが通知テーブルとしても使えると思うのですけど、

act_idvisitor_idvisited_idpost_idactionkidoku
アクションのidした人のidされた人のidされた投稿のidlikefalse

何か不都合ありますか?
どうして「アクションのデータ」とは別に「通知を送ったデータ」のテーブルが必要なのでしょうか。どういうときに役に立ちますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2020/04/04 13:00

> 上だけでなくいいね等の「アクションのデータ」のテーブルも絶対ありますよね 絶対にあると思う理由を教えてください。
gachapon

2020/04/05 05:36

いいね機能の作り方を見ると「アクションのデータ」のテーブルの作り方が載っているからです。片方あればいいということでしょうか?通知テーブルもアクションテーブルも必要だと思いますか?
guest

回答1

0

そのサービス上でユーザーに通知するアクションが「いいね」一つだけである場合は、通知用のテーブルをわざわざ作らなくても良いかも知れません。

しかし、将来そのアクションが増えていく(例えばフォローされました、メッセージが届きました等)場合、もし通知テーブルが無いと、通知するために各テーブルからデータを取得し、連結し、日付順に並べ替える必要があります。

ユーザーに表示する通知内容の最新の10件を表示し、その後はページネーション、といった形で見せようとしたいときは、毎度それぞれのテーブルに問い合わせをして、並べ替えして、という処理が繰り返されるため、複雑になる可能性があります。

そう考えると、通知用に一つテーブルを持っておけば、様々なお知らせを一箇所に集約して、常に最新の10件を取得すれば良いだけなので、シンプルな処理で済みます。

そのサービスを将来どのような設計にしていきたいかで、必要か不必要かは判断は分かれると思います。

投稿2020/06/14 03:10

findy

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問