2 つのテーブル間の関係について質問があります。
テーブル users とリンクがあるとします。
users
+++++++++
id name
1 name1
2 name2
3 name3
+++++++++
links
+++++++++
id link
1 link1
2 link1
3 link1
+++++++++
これら 2 つをリンクする通常の方法は、name_links テーブルを使用することです。例えば:
name_links
++++++++++++
uid lid
1 1
1 3
2 3
2 1
2 2
3 2
++++++++++++
今、私はこのようなテーブルを作るのが良い考えかどうか疑問に思っていました.
name_links
++++++++++++
uid lid
1 1,3
2 1,2,3
3 2
++++++++++++
私が考えることができる長所と短所は次のとおりです。
長所1:
常にインデックスを検索します。より高速なクエリの例では、uid=1 を選択してから、リンク 1、3 を選択します。どちらもインデックスなので高速ロードになります。
1000 人のユーザーがいて、それぞれに 20 個のリンクがある場合、すべてのリンクを取得するには 20.000 レコードを通過する必要があることを意味します (これについてはわかりません)。この方法を使用すると、インデックスを 1 つだけ取得して完了です。
短所1:
name_links テーブルをより頻繁に更新し、読み取り、編集、書き込みを行う必要があります 例 ユーザー 2 は link2 を削除します メソッドは次のようになります:
+ ユーザー 1 の文字列を取得 +
文字列から番号を削除
+ 新しい文字列を挿入ここでのすべてはインデックスで行われるため、高速になると思います。
短所2:
別の短所は、リンク 2 を削除するときに、すべての文字列を調べなければならないことですが、これはあまり問題にならないということです。
これは私がこれまでに思いついたものであり、私はプロジェクトの時点で、どちらを使用するかを決定する必要があります.
どの方法を選ぶべきか、アドバイスをいただければ幸いです。私の長所と短所は正しいですか?私が考慮していないことはありますか?このトピックに関するヘルプは大歓迎です。
君たちありがとう!