2

この状況に関するベスト プラクティスについて質問があります。(他の列に加えて) TINYINT(1) である 2 つの列を含む mysql テーブルがありますが、両方を 0 にすることはできません。0 と 1 にすることはできます。 、1 と 0、1 と 1 ですが、0 と 0 はありません。これを制御する最善の方法は何ですか? これを制御する方法はありますか?

編集: ENUM オプションを選択すると思いますが、mysql と Entity Framework を組み合わせた場合、これはどのように実行されますか?

4

4 に答える 4

3

私が考えることができるいくつかのオプション:

  • 更新/挿入トリガーの前に検証する
  • アプリケーション ロジックで検証する
  • 受け入れ可能な状態で外部キー参照を追加する
  • 可能なすべての組み合わせで ENUM を使用し、NULL を許可しない

個人的には、おそらく最後のアプローチを使用します。

編集:

SETデータ型はこれを完全に実現します。

于 2013-06-20T18:47:19.440 に答える
0

1 つの回避策は、2 つの列を BIT(2) 列に結合することです。更新を実行するときに、列を b'00' に更新していないことをテストできます。

組み込みの予防に関しては、それを行う方法があるとは思いません。

于 2013-06-20T18:44:18.067 に答える
0

おそらく、それらを 1 つの列にまとめることでこれを達成できます。

  • 最初の数字が表す1
  • 2 番目の数字が表す2

列に値12またはが含まれる可能性があります3。のときは0両方ともです。

と2 番目の数字は になり2ます。で、最初の数字は になります。31131

于 2013-06-20T18:45:24.157 に答える