我正在尝试重构一个完成了一半的项目。原开发者已经离开。在他的模型设计中,使用了一个单独的"时期"模型。因此,折扣对象有一个可用期间,事件可以有一个期间
周期表:
create_table "periods", :force => true do |t|
t.integer "owner_id"
t.string "owner_type"
t.datetime "begin"
t.datetime "end"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
我开始觉得写基于日期的列表查询很困难。我需要加入期间表并对结束日期字段进行排序。
我想问的是:这种方法的优点/缺点是什么?我觉得把这些东西搬回属于自己的模型更有意义。
制作period
表并不一定是一种奇怪的做法:只要将此类信息传递给项目开发人员的继承人。
如果你想了解在给定时间段内发生的一切,比如六月,那么表的划分是完全合理的。
所以我的观点是,我想这是关于沟通和需求的。如果您不再需要该功能,我建议进行迁移,将两个新列添加到与句点相关的所有多态表begins_at
和ends_at
中,然后将句点表中的所有数据迁移到这些相关列中。