フィールドプリセットをデータベースに保存する方法は?

私は巨大なテーブルをユーザーに見せる必要があり、ユーザーが見たいフィールドをユーザーが選択できるようにする必要があります。

問題は、これらのフィールドをデータベースに保存する最良の方法は何か。私がこれまでに得た唯一のアイデアは、このようなテーブルを作ることです:

enter image description here

これらのフィールドを 0 または 1 に設定してください。

獣のアプローチは何ですか?

0
nl ru de
@ajreal mysqlにはデータ型のビットはありません。真偽値はtinyint(1)と同義です.-それはマニュアルにあります。
追加された 著者 fancyPants,
@ajreal大丈夫、BIT(1)で使っているとは思わなかった、はい、そうです。
追加された 著者 fancyPants,
私はentity-attribute-valueがより適していると思います。また、列タイプBITはtinyintよりも優れています(tinyintは0,1以外の値を受け入れます)。ビットは0または1だけです。
追加された 著者 ajreal,
@tombomビットタイプがあります - dev.mysql.com/doc /refman/5.0/ja/bit-type.html
追加された 著者 ajreal,
@ajrealここでEAVを使う方法を理解できません。いくつかの例を提案できますか?とにかく BIT に感謝します:)
追加された 著者 k102,
@SparKot私はそれを受け入れることができるように答えを出すことができると思います。これはうまくいきます。
追加された 著者 k102,
user_id、field_name、enabled user_id に対して有効なレコードのみを選択します。フィールドの Order をカスタマイズできる場合は、別の列 disp_order を使用してください。
追加された 著者 SparKot,

1 答え

Let the table be : (user_id, field_name, enabled)

or if display order is needed too (user_id, field_name, disp_order, enabled)

特定の user_id (必要に応じて disp_order でソート)に対して有効であるレコードを選択します。

1
追加された