1
我有一個有狀態的對象。這可以是:「上移」在rails中使用枚舉建模狀態和子狀態
'scheduled', 'on-shift' or 'past'
此外,可狀態:
'available', 'busy' or 'inactive'
什麼是在我的Rails應用程序,這些國家建立最佳方式是什麼?
是不是:
a。創建兩個狀態屬性:
1. object_state - can take the value: 'scheduled', 'on-shift' or 'past'
2. on_shift_state - can take the value: 'available', 'busy' or 'inactive'
b。創建單個狀態屬性,其值可以爲:
'scheduled', 'past', 'available', 'busy' or 'inactive'.
c。另一種方式。
我認爲選項b將確保數據庫中的邏輯一致性,但會增加查詢的複雜性,例如,如果我想要搜索'on-shift'的單元,我需要搜索3種不同的狀態。它也可能更難以延伸,例如如果我想在以後添加更多的州。
如果我選擇b,有沒有簡化查詢的方法?
你會建議使用任何特定的結構/方法?
注:我想使用枚舉來模擬狀態。
謝謝,我聽說過關於狀態機的好東西,儘管我認爲它可能對我的應用程序來說太重了。關於如何使用寶石解決我的問題的任何具體想法?我瞭解如何定義狀態,事件和轉換,但不知道如何創建子狀態或狀態組。 – user3711600 2014-10-04 14:03:30