MySql に次の列を持つ次のテーブルがあるとします。
- 0 または 1 の状態を取ることができる状態 (ブール値)。
- col1 (状態 = 1 の場合にアクセス可能 // 状態 = 1 の場合、ユーザーが編集できることを意味します)
- col2 (状態 = 0 の場合にアクセス可能)
- col3 (いつでもアクセス可能)
MySqlでそのようなテーブルを作成するにはどうすればよいですか?
MySql に次の列を持つ次のテーブルがあるとします。
MySqlでそのようなテーブルを作成するにはどうすればよいですか?
HamZa が述べたように、「アクセス可能」はコード層で行う必要があります。実際には同意しますが、議論の余地があるかもしれません。
オプションは、異なるビューを使用することです。次のようなビューを作成します
CREATE VIEW foo_1 AS
SELECT state, col1, col3
FROM foo
WHERE state = 1;
と
CREATE VIEW foo_2 AS
SELECT state, col2, col3
FROM foo
WHERE state = 0;
ただし、ビューには特定の制限があるため、更新/挿入可能であることに注意してください。
私がこれまでに見た唯一の可能な問題は
ビューには、デフォルト値を持たない実表内のすべての列が含まれている必要があります。
詳細については、マニュアルを参照してください。