[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Простые варианты значений (MySQL или config)?
remenikomer
MySQL + php
Нужно выводить несколько полей с простыми значениями, которые не будут меняться, а если и будут, то очень редко и незначительно.
Например:
пол: мужской/женский
КПП: АКПП/МКПП
Интернет: АДСЛ/выделенная линия/сотовый оператор
Комплектация авто: подушки без., ГУР
и т.д.

Варианты реализации:
1. сделать таблицу. Можно даже без php, вручную залезать в phpmyadmin и там менять smile.gif
2. занести все в config.php в массив настроек, указать поле kpp => 'akpp|mkpp',

Кто хочет дочитать мои мысли, попробую объяснить... кто не хочет, то можно сразу решение предложить.

Мне кажется, что лучше 2-й вариант. Тем более, что такое встречал часто.
Но не знаю, как лучше выводить выбор пользователя, а также сохранять в БД. Например, можно сохранять в БД только id, а можно текстовый вариант (value).

А когда будет вывод, сравнивать либо по id, либо по совпадению текста, соответственно.

Подводные камни:
Если сохранять id, то когда будет изменения в конфиге, то у всех поменяется с другим значениям.
Если сохранять в БД value (текст, а не id), то вывод будет прямо из таблиц, без лишних разборов. Но при редактировании пользователем данной информации, при сохранении будет ошибка, т.к. текст уже не равен, при foreach установка атрибута selected не сработает.
smile.gif
Zzepish
Выглядит как тз. $20
remenikomer
Цитата (Zzepish @ 11.04.2014 - 22:16)
Выглядит как тз. $20

причем тут ТЗ? Это вопрос... реализация не требуется. Иначе бы я на фрилансе разместил
inpost
Из заголовка не понял что, а в тексте вопроса не увидел smile.gif Ты уточни, что хочешь и в чём вопрос smile.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
remenikomer
Цитата (inpost @ 11.04.2014 - 22:32)
Из заголовка не понял что, а в тексте вопроса не увидел smile.gif Ты уточни, что хочешь и в чём вопрос smile.gif

Ну да... забыл smile.gif
Цитата
Нужно выводить несколько полей с простыми значениями, которые не будут меняться, а если и будут, то очень редко и незначительно.

Как лучше сделать сохранение в БД выбранных значений, чтобы потом просто было выводить, изменять?
inpost
К примеру:
пол: мужской/женский
DB: sex: 0 | 1 tinyint(1). Итак всё понятно. В ПХП меняешь 0 на девушку.
Можно вторым вариантом, это enum('мужчина','женщина') - тоже быстро работает с автозаменой при выборке. И тоже мало места занимает и быстрая выборка (правда медленнее, чем tinyint.

Комплектация авто: подушки без., ГУР
Вариантов уйма, может быть динамически меняться. Тут лучше делать через связку многие ко многим. 3 таблицы: Авто, элемент комплектации, связь между Авто и элементом. Замечу, что под Авто можно как единица автомобиля, а можно делать как группа элементов (когда касается другого рода типов товаров: Монитор, Процессор).

Интернет: АДСЛ/выделенная линия/сотовый оператор
Варианта всего 3. Длинные названия, подошел бы и enum, но тут mysql будет длинные строки возвращать. Отсюда я бы в конфиге хранил полное название, а ключи в БД с заменой, но это в том случае, если товаров МНОГО(!). Если там вариантов товаров 5-6, то enum в десятки раз удобнее, так как сразу вернёт нужное.

"Если сохранять в БД value (текст, а не id), то вывод будет прямо из таблиц, без лишних разборов. Но при редактировании пользователем данной информации, при сохранении будет ошибка, т.к. текст уже не равен, при foreach установка атрибута selected не сработает"
- тут привязка всё равно должна быть по ID, когда ты прогоняешь через foreach, то ты сравниваешь ID, а выводишь именно текст. Таким образом ты не нарушишь целостность при грамматической ошибке.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
remenikomer
вопрос еще и в том, стоит ли вообще использовать для справочников БД? Проще же в файл конфига закинуть. Поля то простые, все или списки или radio переключатели. Сложностей не планируется. Комплектация тоже простая, это не каталог с модификациями моделей...
Я вот только не понял про редактирование в таком случае... про какие id идет речь?
Если я сохраняю в файл конфига, например, пол: "муж|жен".
При выводе radio через explode() создаю массив. Пользователь выбрал пол, сохраняется в его профиль уже то ли id этого массива, то ли значение элемента массива.
Если сохраняю значение элемента "муж", то при выводе я должен взять этот массив и сравнивать значения каждого элемента со значением из профиля пользователя.
Насколько это правильно?
Вдруг через год значения поменяю.
Если же сохранять id, то при изменении, может появляться у пользователя совершенно другое значение (новое). Но не факт, что он согласен или достоверно.
В 1-м случае, все останется, как есть. Но при редактировании уже будут новые значения. Ему придется выбрать что-то другое.
inpost
remenikomer
А что использовать? Файлы? MySQL и есть файлы в 90% случаев.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
remenikomer
Цитата (inpost @ 11.04.2014 - 23:07)
remenikomer
А что использовать? Файлы? MySQL и есть файлы в 90% случаев.

Ну я имею в виду, что справочники со значениями этих полей не закидывать в MySQL. Иначе, чтобы их редактировать, придется создавать лишний функционал.
inpost
Проще зайти в CMS, и там отредактировать нужное поле, а не лазить по файлам.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
remenikomer
Цитата (inpost @ 11.04.2014 - 23:12)
Проще зайти в CMS, и там отредактировать нужное поле, а не лазить по файлам.

дак я про CMS и пишу... понятно, что я не полезу на FTP скачивать файл, чтобы там что-то править.
Я просто сейчас делаю функционал.... а полей там много таких мелких. Вот и думаю, что лучше.
Потом еще нужно будет по этим полям и поиск осуществлять.

Опыта еще мало
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.