この質問は非常に具体的です。速度、正規化の概念、およびテーブルのメンテナンスの観点からの見解を適宜回答してください。
友情情報を保存する必要があるソーシャル ネットワーキング サイトを設計しています。auto_increment_integer id、userId1 (int)、userId2 (int) を含むテーブルを設計しました。各友情を保存するには、次の 2 つのオプションがあります。
- フレンドシップごとに 1 つのエントリを追加します
- id1_val、id2_val と id2_val、id1_val の 2 つのエントリを追加します。
最初のオプションには、保存する必要がある行の数が少ない (つまり、フレンドシップごとに 1 つだけ) という利点がありますが、2 番目の方法では、検索クエリに列が 1 つしか含まれないため、検索が高速になります。インデックス付きの userId1 列を使用すると、検索が高速になります。
上記のアプローチのいずれかで他の利点/欠点を提案できる人はいますか?