Я довольно новичок в PHP/MYSQL, у меня есть веб-сайт с несколькими длинными формами, и многие из них добавляются на регулярной основе. Данные из всех форм хранятся в таблице данных «data» MYSQL.MYSQL - Сохранение множества текстовых полей в одной строке
Способ, которым я обращался к хранению данных, состоял в том, чтобы иметь 200 текстовых столбцов (поскольку мои формы занимают до 200 вопросов). Не каждый вопрос нуждается в текстовом столбце, около 50% - это только целые числа или несколько ответов на слова, но поскольку они меняются по порядку, это был самый простой способ заставить его работать.
Я теперь обнаружил, что я не могу показаться, чтобы хранить более 10 текстовых значений в одной строке, я получаю следующее сообщение об ошибке:
размер строки слишком велик (> 8126). Изменение некоторых столбцов до TEXT
или BLOB
или использование ROW_FORMAT=DYNAMIC
или ROW_FORMAT=COMPRESSED
может помочь. В формате текущей строки префикс BLOB
из 768 байт хранится в строке.
Где я ошибаюсь и как лучше всего хранить данные? Я знаю, что 200 столбцов кажутся много, и я читал, это должно означать, что я не нормализовал свои данные должным образом, но создание большого количества таблиц в этом случае не кажется разумным, так как все данные подключены на одном уровне к форме, из которой он пришел. Разделить его на 20 таблиц с данными 1-10 11-20 21-30
просто не кажется правильным?
Любая помощь будет высоко оценена.
У вас должен быть сохранен каждый вопрос как строка, и в каждой строке есть имя столбца f.e. id_field ... Тогда в вашей таблице не будет 200 столбцов, но только пара (зависит от других столбцов в вашей таблице) ... – Legionar
Спасибо! Это то, что я искал, просто так и не подумал об этом, нет причин, почему все ответы должны быть в одном ряду! Лампочка момент! – Matt
Я просто добавил это также как ответ :-) – Legionar