2

64 を超えるメンバーを持つMySQL SETcol 型の動作を複製する最良の方法は何ですか?

SET約 85 の異なるオプションを使用して、MySQL で自然に行うことを行う必要があります。(制限は 64 です。) これを実装する最良の方法は何でしょうか?

私はこの質問を見てきましたが、私のメンバーは6文字の文字列しかありません.これは、これらのメンバーの新しい1列のテーブル全体を実際JOINに作成する最も効率的な方法です(テーブル2と呼びます) 、次に、テーブル 1 (列を作成した場所) とテーブル 2 の ID をリンクする 2 つの列の 3 番目のテーブルは?SET

4

2 に答える 2

2

を使用する 2 番目のテーブルに正規化しますENUM

このような単一テーブルの設計から:

  • ID、...、Set_Col

これらに:

  • 表 1: ID, ...
  • 表 2: Table1_IDEnum_Col

次に、Table1 PK ( ) から「セット」の値へのゼロ以上の関係を持つことができますID。これは、セットではなく正規化されたENUM値です。SETまたはのスペースの利点ENUM、 の多重度が得られSETますが、 の 64 メンバー制限を超えていますSET

于 2013-08-28T11:17:02.993 に答える
0

これらの 6 文字の文字列は既にあるため、将来的に結果セットに入れる必要がある場合があるため、別のテーブルに入れ、「JOIN + 接続テーブル」アプローチを使用します。

セットの要素に文字列が指定されていない場合は、ブール値の配列を SQL で実装します。これを行うには複数の解決策があります。この SO questionを確認してください。

于 2013-08-28T11:18:05.717 に答える