2017-06-17 61 views
0

我在想如何定义状态和错误的好表设计。表中的状态和错误字段?

例如在queue表中,我正在考虑创建名为statuserror的两个字段。

默认error值将为空。

status字段中的值可以是下列之一:待定,in_queue完成,错误

如果我定义在status场误差值 - 它不告诉我它是什么类型的错误。我应该在status,并在error设定误差值来描述错误类型,如:ftp_login_failed

如:

update queue set status='error' error='ftp_login_failed' where id=5; 

回答

1

我会去的:

  • 要么只有一个字段, status哪些可以挂起,in_queue,已完成,error_a,error_b,...如果您明智地选择错误名称,则可以执行SELECT ... WHERE status LIKE 'error%'

  • 或者两个字段,其中status可以挂起,in_queue和完成,然后如果完成,则error IS NULL表示没有错误,而error IS NOT NULL表示存在错误。

+0

第二个选项 - 如果错误不是NULL,你不会将状态更改为错误值。只是保持状态的状态 –