Как правильно записать различные строки данных в одно поле?

257
23 апреля 2022, 15:00

На веб-сайте планируется сделать отслеживание входящего трафика. То есть PHP скрипт должен принимать GET параметры входящего трафика и записывать в БД. К примеру ссылка https://example.com/?utm_source=youtube&utm_medium=video&utm_campaign=Cool_boy&utm_content=pre-roll будет разобрана на: 1)youtube 2)video 3)Cool_boy 4)pre-roll Далее эти значения должны быть записаны в одно поле таблицы БД. Делать отдельные поля под каждое значение неудачное решение, так как параметров может быть больше или меньше по количеству, поэтому запись в одно поле. Вопрос, как в строковое поле записать эти параметры, записывать все в JSON чтоб потом удобно статистику на PHP выводить, или использовать пробел или может какой-нибудь специальный символ, как лучше и почему?

Answer 1

Если вы потом планируете использовать эти данные в других приложениях(например вы разрабатываете api и хотите получить эти данные через js), то однозначно лучше использовать json, т.к он дает стандартизацию данных. Это можно сказать хорошая практика стандартизировать хранение данных в один вид, то JSON для этого прекрасно подходит. Если вам принципиально нужно разделять через пробел и никак больше, то используйте этот способ, но все зависит, как вы будете использовать эти данные в будущем. Потому-что например если у вас будут массивы в query параметрах, то сохранять в виде строки будет не удобно, т.к это все потом придется разбирать, что будет крайне не удобно делать. JSON эту проблему решит и вне зависимости от усложнения структуры всегда можно будет легко распарсить в массив через json_decode В mysql 5.7.8 был введен тип данных JSON https://phptoday.ru/post/ispolzovanie-json-v-mysql Переводите query параметры в массив, например через parse_str, кодируете его в json через json_encode и записываете полученную строку в столбец, который имеет тип данных JSON.

READ ALSO
объединить 3 запроса UPDATE MySQL

объединить 3 запроса UPDATE MySQL

Доброго времени суток!

156
Помощь с запросом MySql

Помощь с запросом MySql

У меня База данных в которой миллион строк (в каждой по одному слову), есть список (вне базы данных) который состоит из тысячи строк (в каждой...

127
Получение оповещения о новых данных Android?

Получение оповещения о новых данных Android?

Ситуация следующая Уже есть готовый продукт и админка, которые не зависят от меня и вносят изменения в БД (MYSQL) для ясности примера предположим,...

230