MySQL не поддерживает тип данных массива, хотя он поддерживает тип данных JSON в MySQL 5.7 и более поздних версиях.
Строго говоря, вы можете сохранять любые полуструктурированные данные в столбце TEXT
. Но тогда вы обнаружите, что это не легко и эффективно искать.
Возможно, вы захотите найти в вашем «массиве» определенное значение. В таком случае вы будете испытывать желание использовать LIKE '%pattern%'
или совпадение регулярного выражения или что-то подобное, чтобы найти определенное время суток. Эти выражения трудно или невозможно оптимизировать с помощью индексов, поэтому поиски обычно превращаются в сканирование таблиц.
Альтернативой является использование дочерней таблицы с одним datetime на строку, ссылающуюся на ваш UID. Да, это может вырасти в длинную таблицу с миллионами строк, но гораздо проще оптимизировать поиск по индексам. Поиск по индексам в таблице с миллионами строк превзойдет поиск по неиндексным таблицам при просмотре таблицы намного меньшего размера.
У вас будет меньше седых волос, и у вас будет намного больше опыта работы с SQL, если вы будете придерживаться правила, согласно которому каждый столбец должен иметь одно скалярное значение , а не "массив" или Разделенный запятыми список , или «документ» в формате JSON или XML, или любой другой вид полуструктурированных данных, подобных этому.