2009-02-26 4 views
2

Я пишу CMS для различных форм и т. Д., И я нахожу, что создаю много выпадающих списков. Мне действительно не хочется удалять мою базу данных с помощью тонны таблиц случайных ключей/строк для простых выпадающих списков с вариантами 2-4, которые меняются очень редко. Что вы делаете, чтобы управлять этим ответственным образом?Сохранение выпадающих списков DRY в веб-приложении

Это язык-агностик, но я работаю в Rails, если у кого есть конкретные советы.

ответ

4

Мы поместили все в единую таблицу LookUp в базе данных, столбец, сопоставленный с перечислением, в котором описывался, для какого поиска он был (название, страна и т. Д.).

Это позволило нам добавить гибкость опции «Другой, пожалуйста, укажите» в раскрывающихся списках поиска. Мы внесли контроль, который инкапсулировал это, с свойством включать или отключать это поведение в каждом конкретном случае.

Если конечный пользователь выбрал «Другое, пожалуйста, укажите», появится текстовое поле для ввода их собственного значения. Это будет добавлено в таблицу поиска, но будет помечено как специальный элемент.

В таблице содержится флаг, обозначающий статус каждого значения поиска: активный, неактивный, AdHoc. В раскрывающемся списке появятся только активные. AdHoc - это те, которые были созданы с помощью опции «Другой, пожалуйста, укажите».

Страница администратора показывала частоту использования значений AdHoc, позволяя администраторам сайта распространять распространенные популярные значения в общем использовании (т. Е. Заменяя флаг состояния на активный).

Это может быть излишним для вашего приложения, но оно отлично подойдет для нас: приложение было практически полностью обработано CRUD-операциями по очень специфичным для бизнеса данным. У нас было множество поисковых запросов по всему сайту, которые клиент хотел сохранить. Это дало им полную гибкость без вмешательства со стороны нас.

+0

Мне очень нравится эта идея. Не уверен, что я пойду с чем-то довольно сложным, но, безусловно, хорошей пищей для размышлений. –

+0

Как вы убедились, что ваши различные выпадающие списки были указаны в правой группе? Вы скопировали групповой ключ в свой код? –

+0

Мы устанавливали свойство каждый раз, когда мы помещаем экземпляр элемента управления поиском на странице. Это невозможно сделать декларативно в asp.net; Я не работал в Ruby. Контроль будет умереть ужасно, если мы забыли его установить, поэтому мы сразу увидим это при отладке. – teedyay

3

Вы холодный один единственный раскрывающийся стол с дополнительной колонкой, чтобы сказать, что падение вниз для ... ограничить результаты с где п ...

1

В моей нынешней позиции, мы реализовали таблицу LookupCode который содержит столбец CodeGroup, Code и Meaning, а также некоторые другие (например, активные). Таким образом, у вас есть одна таблица, которая содержит все ваши значения поиска, находится в одном месте, и вы можете быстро найти ссылки на свои выпадающие списки.