Мне нужно иметь несколько форм с раскрывающимися списками, используя теги select
. Есть два варианта для представления выбранного выбора в каждом списке:Представление значений выпадающего списка в базе данных
- Сохраните выбор в виде строки или целого числа.
- Сохраните все возможные варианты для определенного списка в отдельной таблице, а затем используйте внешний ключ из основной таблицы в эту таблицу.
Например, один список попросит пользователя колледжа, которого он посещает. Пользователь может выбрать один из вариантов в списке или выбрать «Другое» и ввести другое значение в поле ввода.
Другой список спросит, сколько миль он проехал в прошлом году. Варианты будут иметь форму «0-100 миль», «100-500 миль», «500-1000 миль» и т. Д. Если я использую параметр 1, я могу либо сохранить всю строку, либо короткую версию строки, либо целое число. В последних двух вариантах я вручную преобразую значение в отображаемое значение.
Я склоняюсь к варианту 2, но хочу избежать необходимости менять все позже. Единственная проблема, с которой я столкнулся с этими параметрами, заключается в том, что я должен заполнить базу данных исходными значениями для каждой таблицы (я использую Django и могу использовать приборы).
Поскольку это так распространено, какой вариант люди предпочитают использовать? Каковы плюсы и минусы?
Используйте нормализованный дизайн. Если вы не знаете, что это значит, я хорошо слышал о книге «Дизайн баз данных для простых смертных». –
Я знаком с нормализацией, которая будет соответствовать варианту 2. То, что я не знаю, работает над большим веб-приложением и запутанными людьми, которые работают в процессе производства, а не только на уровне схемы базы данных, а также кодом приложения и управление данными. –