1つのテーブルに5つのブール値を格納する必要があります。各値はtinyint(4)として保存できます。したがって、5つのtinyint(4)があります。1つのtinyint(4)に5つのブール値を入れることを考えています。誰もが私よりもよく知っていると思います。5ビットを1バイトに問題なく保存できます:)最初の値は0(false)または1(true)として、2番目の値は0(false)または2( true)、3番目は0または4、4番目は0または8、5番目は0または16です。したがって、その値の合計をtinyint(4)に格納すると、5つのブール値が正確にわかります。
For example, stored 21 -> 16 + 4+1.
So, if 21 is stored, we know that:
Fifth=true
Fourth=false
Third=true
Second=false
First=true.
私の質問は、1つの変数だけを保持することは意味がありますか?dbボリューム(バイト)とパフォーマンス(4列少ないが、同じテーブルで実際にvarchar(1000)を使用したのに対し、これは4バイトのみ)を獲得しますが、毎回「合計」から適切なブール値を「抽出」する必要があります。 「php関数を使用すると、それは頻繁に発生します(たとえば、ユーザーがボタンを押したとき)。ブール値を合計として1列に格納するのは理にかなっているので、11列ではなく7列になりますか?
その値は明らかです(テーブルには2行よりもはるかに多くの行があるため)、キーではありません。
ありがとうございました。