こんにちは、私は Web 開発の初心者です。ソーシャルネットワーキングサイトを開発しようとしています。データベース設計レベルでは、いくつか問題があるように感じます。ここに私の問題があります。
属性が次のステータステーブルがあります。
- status_id (auto_increment)
- ユーザーID
- 状態
私の計画は、ホームページの読み込み時に関係テーブル (私は関係テーブルを持っています) から友達を探し、関係テーブルの user_id を使用して、ステータス テーブルからステータス (最新順) をロードすることです。これは良い計画ですか?このテーブルには何百万もの行が含まれる可能性があるため (運が良ければ、最も効率的な方法が必要ですが)、1 人のユーザーが 200 人または 300 人の友人のクエリを実行している場合、遅くなりますか? テーブルに非常に古いステータスを保持する必要がありますか? アドバイスをお願いします。このテーブルには頻繁に挿入が行われるため、インデックスを作成することはお勧めできません。どう思いますか? 属性が次のようなコメント テーブルもあります。
- ユーザーID
- friend_id(誰のステータスについてのコメント)
- status_id(ステータスに関するコメント)
- コメント
ここでは主キーはありません。このテーブルの質問は同じです。MySQL データベースと MyISAM をデータベース エンジンとして使用しています。InnoDB はどうですか? ソーシャルネットワーキングに最適なエンジンは? あらかじめご了承ください。