Rails:如何建模以下逻辑

时间:2018-05-19 14:01:13

标签: ruby-on-rails ruby database activerecord database-design

我有一个名为Item的模型,它属于Report。

class Item < ApplicationRecord
 belongs_to :report
end

对于我的项目,我想要一个名为item_category的属性(除了其他属性)。

t.string "item_category"

我会有一些与他们相关税的标准类别。

我的问题是: 我是否应该为“类别”和“税”设置另外两个模型,并加载将作为“我的项目”类别属性的选项创建的可用类别? (或Tax应该是Category模型的属性,或者不属于任何类型)

过了一段时间,可以添加/删除另一个类别,税收相同,我希望它尽可能模块化,不要在每次要删除/添加类别/税时进行更改。 我该怎么办呢?

2 个答案:

答案 0 :(得分:1)

这实际上取决于类别的变化频率。如果tax + category对是常数,那么我建议在代码中添加它作为常量(Hash,也许,结构为{“category”:“tax”})。如果税收经常变化,那么制作另一个Category模型并将税收+类别存储在那里更有意义。

根据您的描述,您似乎不需要单独的Tax模型(我假设您只有%金额)。这是基于类别只有一种税的假设。

这就是我所能提供的所有信息。但最优化的methid laregly取决于您的业务逻辑的更多细节描述

答案 1 :(得分:1)

我建议使用模型

  • 型号:Categorytax
    • 类别:字符串
    • taxProcent:integer