私は本当に趣味であり、あまりにも壮大な願望を持っています。とはいえ、データベースの変更にクライアントのリファクタリングが必要ないだけでなく、高速になるように、データベースを作成する正しい方法を見つけようとしています。典型的な開発やDBAの用語をよく理解していないかのように返信してください。
状況:各ユーザーが何冊の本を評価したかを調べようとしていました。次のいずれか2つが含まれている場合、評価された本を検討します。
-Overall rating (ratings table)
-sub rating (ratings table)
-tag (book_tags table)
-list (book_lists table)
*Related tables: users, tags, lists
問題: 10個のサブ評価と2つの全体的な評価がすべて評価テーブルにあり、それぞれが列にあります(これは悪いと思いますが、確かではありません)。代わりに、評価テーブル(12行)とbook_ratingsテーブルを用意する必要があります。このテーブルでは、評価テーブルの各行がユーザーの評価の一種です。
-e.g. book_ratings: id | user_id | book_id | rating_id
はいの場合、50万冊の本、1冊あたり12種類の評価、10,000人のユーザー、およびそのbook_ratingsテーブルに合計50億行がある場合はどうなりますか?それは超低速で実行されますか?もう一つの考慮事項は、将来的にサブレーティングタイプを追加したいと思うかもしれないということです。それは部分的にそれを変更する価値があると思う理由ですが、それは大変な作業なので、最初に確認したいと思いました。
ありがとう!