Ваши вопросы очень похожи на этот: mongodb и mongomapper
Я думаю, что вы, вероятно, захотите создать коллекцию "типов" с "единицами измерения"... так что ваша коллекция типов будет иметь такие записи:
{"_id" : "password", "display" : "password"}
{"_id" : "user_name", "display" : "text", "restrictions" : ["max_length": 20]}
{"_id" : "eye_color", "display" : ["red","blue","green"], "restrictions" : ["single"]}
Итак, очевидно, что логика рендеринга всего этого должна быть на стороне Ruby.Однако, попробовав этот материал в RDBM, это определенно будет легче.
Да, слабость здесь в том, что вы можете в конечном итоге запросить коллекцию «types» один раз для каждого поля.Итак, если вы показываете 10 полей, вы делаете 10 запросов.Это может звучать немного неубедительно, но это в основном то, что ваша база данных MySQL делает в любом случае.Вы, вероятно, захотите создать слой «кэширования» для коллекции «types», так как вы, вероятно, захотите, чтобы он постоянно «в памяти».