Я пишу быстрое приложение для пользователя, чтобы отслеживать свои ежедневные счета (для целей отслеживания денег).Я хочу, чтобы пользователь мог определять свои собственные категории, к которым может применяться счет.Однако я пытаюсь решить, как лучше всего смоделировать это, а также проверить категории как уникальные.
Моя первоначальная мысль заключалась в следующем:
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
Таким образом, пользователь может добавлять категории так же, какстрок, и когда они добавляют счет, они будут выбирать из доступных категорий для счета.
Итак, пара вопросов:
Похоже ли это направильный дизайн?Я не думаю, что необходимо определять фактическую модель категории, поскольку она буквально является строкой, используемой для индексации счетов, но я не уверен, есть ли другие преимущества для отдельной модели
Как мне проверить validate_uniqueness_of: Categories в моей пользовательской модели.Я не думаю, что это работает с такими элементами массива, но я могу ошибаться.Я не хочу, чтобы пользователь создавал категории с тем же именем.Я полагаю, что это может быть преимуществом отдельной модели, встроенной в пользователя, но опять же, похоже, больше работы, чем необходимо.
Может кто-нибудь сказать мне мои лучшие варианты здесь, чтобы проверить, что у пользователя есть уникальные категории (но пользователи могут иметь те же категории, я, очевидно, не волнуюсь об этом, просто уникален всфера одного пользователя)