SQL:使用if else在视图中创建新表检查

时间:2011-02-09 14:30:47

标签: sql asp.net-mvc database linq-to-sql

SQL:创建新表以在其他表中保留状态的定义,或使用if else查看。

我正在做关于预订数据库编程的事情。

我有一个包含[status](char => 0,1,2,3)

的表格保留

0表示保留,1表示检入,2表示退出,3表示已取消

在创建用于保持状态定义的新表之间更好 如果在案例中使用以显示诸如

之类的定义
if(status=="0") print reserved
if(status=="1") pring ......
.....
...

thx,征求意见

2 个答案:

答案 0 :(得分:1)

如果将来不太可能扩展这些状态,并且仅由这一个表使用,您可能希望将定义保留在单个表中。

如果您这样做,您可能希望使用以下内容创建表:

CREATE TABLE T (
    /* Various columns */
    Status tinyint not null,
    constraint T_Status_Valid CHECK (Status between 0 and 3),
    StatusText as CASE Status
       when 0 THEN 'Reserved'
       when 1 THEN 'Check In'
       when 2 THEN 'Check Out'
       when 3 THEN 'Cancelled'
    END
)

这样可以节省在数据库中创建任何其他对象,同时自动提供文本(如果需要),并避免无效的状态值。

如果,OTOH,您希望将来的状态范围发生变化,或者需要在多个表中使用状态,或者只是觉得上面的内容是“凌乱”(意见可能会有所不同),那么创建一个单独的表并使用外键。

答案 1 :(得分:0)

使用带有外键的表作为状态