0

假设我在 MySql 中有以下表格,其中包含以下列:

  • state(布尔值),可以采用 0 或 1 的状态;
  • col1 (accessible if state = 1 // 表示如果 state = 1 则用户可以编辑)
  • col2(如果 state = 0 则可访问)
  • col3(随时可用)

在MySql中如何制作这样的表?

4

1 回答 1

1

正如 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;

但请注意,视图有一定的限制,因此它们是可更新/可插入的。

到目前为止我看到的唯一可能的问题是

视图必须包含基表中没有默认值的所有列。

请查看手册以获取更多信息。

于 2013-06-06T09:47:38.753 回答