Сохранить данные в базе данных в виде текста

Иногда эффективнее хранить данные в БД в текстовом виде, всего лишь в одном текстовом поле. Это применимо, если небольшой объём информации запрашивается и редактируется целиком, и если в ближайшем будущем не планируется усложнение структуры.

Например, расписание занятий по фитнесу. Занятия могут проходить в двух разных залах.

В БД хранится одно текстовое поле:

19:00^Фитнес микс|Zumba^|^|^|^Фитнес микс|^|
20:00^|^|^Здоровая спина|Zumba^|^Zumba|^|
21:00^|^Zumba|^|^|^|^|

Время, далее дни с ПН по СБ, и каждый день поделен на два зала.

Текстовое представление удобно для разработчика: оно визуально подобно блоку на сайте или в админке. Ещё один плюс — всего один запрос к БД.

Вывести это на сайт или в админку просто: заранее придуманные символы-разделители — в нашем случае это ^ и | — заменяются на теги tr, td или div или любые другие. На теги навешиваются стили, и получается красивый блок:

Расписание на сайтеРасписание на сайте

В админке структура полностью сохраняется, это удобно для менеджера:

Строчки можно добавлять, удалять, все поля редактируемые, названия занятий — любыеСтрочки можно добавлять, удалять, все поля редактируемые, названия занятий — любые

После редактирования html-код обратными заменами превращается в чистый текст:

19:00^Фитнес микс|Zumba^|^|^|^Фитнес микс|^|
20:00^|^|^Здоровая спина|Zumba^|^Zumba|^|
21:00^|^Zumba|^|^|^|^|

Однако если залов для фитнеса, тренеров и т.п., станет много, то посетитель сайта захочет посмотреть занятия в конкретном зале (или у своего тренера). Потребуется не самая простая выборка данных из текста или фильтрация на стороне клиента. Насколько это удобно, и что лучше — быстрый старт или удобное дальнейшее развитие (и будет ли оно) — вопрос индивидуальный.

23 февраляMySQLурок

Заметка понравилась? → Поделитесь в соцсетях:

Ваш комментарий

comments powered by HyperComments

Следующая заметка

Иван ТитовИван Титов
Фрилансер, музыкант, физтех по жизни, семьянин, философ.
© 2017