0

多対多の関係に SET TYPEを使用する際の良い方法があるのだろうか?

ユーザーテーブルがあります。各ユーザーには趣味 (多対多)、本などがあります。目標は次のとおりです。

1) ユーザーの趣味の挿入、更新、削除

2) 誰かの趣味を探す (例: 映画が趣味の人)

一見すると、SET型を使うと非常に簡単に実現できるように見えます。

誰かがそれについて十分な経験があり、どのような欠点があるか教えてください。

よろしく

4

1 に答える 1

0

を使用することにはいくつかの欠点がありsetます。まず、セット内の要素の数を制限します。特定のアプリケーションでは、これは問題にならない場合があります。ただし、SQL の多対多の関係は通常、"0/1-n" であり、"0/1-n (n は MySQL のセット実装で許可されている最大数よりも小さい数)" ではありません。

2 つ目の欠点は、セットが完全に MySQL 固有であることです。これにより、コードを別のデータベースに移植することがより困難になります。

そしておそらく最も重要な制限は、関連付けテーブル (代替) が実際には "SQL" の方法であるということです。それらは非常に強力で、良いアイデアです。セットを使用するとすぐにカンマ区切りのリストに値を格納するようになるのではないかと心配しています。これは、セットを使用するよりも悪い考えです。

セットが役立つ状況がいくつかあります。特に、これらは非常に効率的であるため、特定のパフォーマンスが重要なアプリケーションでは推奨されます。

于 2013-09-07T14:57:13.127 に答える