PHP MySQL でフォーラムを開発しています。フォーラムをできる限り効率的にしたい。
この2つのテーブルを作りました
- tbl_threads
- tbl_comments
さて、問題は、各コメントの下に好き嫌いのボタンがあることです。user_name
好きなボタンまたは嫌いなボタンをクリックしたを で保存する必要がありますcomment_id
。コンマ区切りのuser_namesを格納する列user_likesと列を作成しましたuser_dislikes
。tbl_comments
しかし、このフォーラムで、これは効率的な方法ではないことを読みました。Likes と Dislikes を格納する 3 つ目のテーブルを作成し、データベース設計を 1NF に準拠させるようにアドバイスされました。
しかし問題は、3 番目のテーブルを作成し、次のtbl_user_opinion
ように 2 つのフィールドを作成すると、1. comment_id 2. type (好きか嫌いか)
したがって、各コメントの好き嫌いのデータを取得するには、ページにコメントがあるのと同じ数の SQL クエリを実行する必要があります。非効率ではないでしょうか。ここで私の側にいくつかの混乱があると思います。誰かがこれを明確にすることができますか。