代码之家  ›  专栏  ›  技术社区  ›  brad

Mongo设计问题与Rails/Mongoid的账单跟踪应用程序

  •  0
  • brad  · 技术社区  · 14 年前

    我正在为用户编写一个快速应用程序来跟踪他们的日常账单(用于资金跟踪目的)。我希望用户能够定义自己的类别,法案可以适用。不过,我正在尝试确定建模的最佳方式,并验证类别是否唯一。

    class User
      include Mongoid::Document
      embeds_many :bills
    
      field :categories, :type => Array
    end
    
    class Bill
      include Mongoid::Document
      embeded_in :user, :inverse_of => :bills
    
      field :category
      index :category
    end
    

    因此,用户可以添加类别,就像添加字符串一样,当他们添加账单时,他们将从账单的可用类别中进行选择。

    所以,有几个问题:

    1. 如何验证用户模型中类别的唯一性。我不认为它对这样的数组项有效,但我可能错了。我不希望用户创建同名的类别。我想这可能是一个单独的模型的优点,嵌入到用户中,但是同样的,它似乎比必要的工作要多。

    有人能告诉我在这里验证一个用户有唯一类别的最佳选择吗(但是用户可以有相同的类别,我显然不关心这个,只是在单个用户的范围内是唯一的)

    1 回复  |  直到 14 年前
        1
  •  1
  •   Josh K    14 年前

    [更新]

    这个设计似乎很合适。以Rails特有的方式,您将如何验证唯一性?添加类别时,请拉列表并执行 indexOf

    我不是铁路公司的人,如果我偏离了轨道什么的,告诉我。


    我不确定MongoDB是否是存储引擎的最佳选择。最好使用带有categories表的MySQL。

    • 非酸性交易
    • 没有单一服务器的耐久性