0

当我的对象只有两种状态时,例如员工的“活动”和“退休”,我会在表用户中有一个布尔字段来说明用户的状态。

但是,如果我有一个具有三个或更多状态的对象,我该怎么办?任务可能是“新的”、“进行中的”、“完成的”和“关闭的”,而计算机可能是“订购的”、“在商店中”、“在使用中”、“在维修中”,最后是“废弃”。

我可以看到几个选项:

1) 附加表“状态”。状态属于任务,任务有一个状态。它对我来说看起来不错,但它需要额外的桌子。

2)不知何故在“用户”表中有一个状态列表。不知道有没有可能。我正在使用 PostgreSQL。

3) 确定 1 表示“新”,2 -“进行中”,3 -“完成”,并将这些数字用作状态。

4) 使用状态名称作为状态。将字段“状态”设为字符串。

什么是最好的 Rails 方式?

4

1 回答 1

1

我个人更喜欢state_machineaasm这样的 gem ,我必须为当前状态创建字符串列。所以我认为那是正确的方式,因为它立即为我提供了有关状态的信息。

于 2012-05-04T17:40:17.840 回答