将期间作为单独的模型/表是否常见



我正在尝试重构一个完成了一半的项目。原开发者已经离开。在他的模型设计中,使用了一个单独的"时期"模型。因此,折扣对象有一个可用期间,事件可以有一个期间

周期表:

  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_atends_at中,然后将句点表中的所有数据迁移到这些相关列中。

最新更新