2017-06-17 60 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,你不會將狀態更改爲錯誤值。只是保持狀態的狀態 –