我正在尝试重构一个半完成的项目。原始开发者离开了。在他的模型设计中,使用了单独的“周期”模型。因此,折扣对象具有可用期间,并且事件可以具有期间。
期间表:
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
我开始觉得根据日期编写列表查询很困难。我需要加入期间表并对该结束日期字段进行排序。
我想问的是:这种方法的优点/缺点是什么?我觉得将它们移回归属模型更有意义。
答案 0 :(得分:1)
制作period
表不一定是一种奇怪的做法:只要将这种信息传递给项目开发人员的继承人。
如果您想了解在给定时间段内发生的所有,例如6月,那么表格的划分就非常有意义了。
所以我的观点是,我猜这是关于沟通和需求的。如果您不再需要该功能,我建议迁移向所有与句点begins_at
和ends_at
相关的多态表添加两个新列,然后将句点表中的所有数据迁移到那些方面的专栏。