假设我在 MySql 中有以下表格,其中包含以下列:
- state(布尔值),可以采用 0 或 1 的状态;
- col1 (accessible if state = 1 // 表示如果 state = 1 则用户可以编辑)
- col2(如果 state = 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;
但请注意,视图有一定的限制,因此它们是可更新/可插入的。
到目前为止我看到的唯一可能的问题是
视图必须包含基表中没有默认值的所有列。
请查看手册以获取更多信息。