Как хранить предоставленные пользователем табличные данные? - PullRequest
0 голосов
/ 15 августа 2011

Мне нужно разрешить пользователям загружать табличные данные (строки и столбцы данных). Я понятия не имею, как будет выглядеть эта таблица (без понятия о количестве строк и столбцов). Не используя EAV, можно ли просто хранить все эти данные в одной массивной таблице?

Если я скажу, что 100 столбцов - это максимально допустимые столбцы для данных, загруженных этим пользователем, тогда я просто создаю таблицу из 100 столбцов. Когда пользователь загружает свои данные, я просто помещаю их в эту огромную таблицу.

Полагаю, проблема также в том, как сохранить заголовок столбца пользователя. И попытка сделать это может означать, что у меня есть какая-то форма EAV.

Я специально смотрю на не-EAV решения.

Предложения

1 Ответ

0 голосов
/ 15 августа 2011

Вы можете использовать реальные таблицы MySQL. Если вы знаете имена столбцов, когда получаете данные, вы можете составить подходящее имя таблицы (убедитесь, что вы сами их создаете), создайте таблицу с необходимым количеством varchar столбцов и заполните ее. Конечно, вы бы хотели указывать имена столбцов все время, чтобы вам не приходилось слишком сильно беспокоиться о том, как называются столбцы. Также хотелось бы обратить внимание на размеры входящих столбцов.

Вы всегда можете запросить у базы данных схему таблицы, если она вам нужна, просто поговорите с таблицами информационной схемы или с запросами show columns.

Возможно, вы захотите выделить базу данных (или одну базу данных для каждого клиента) для этих пользовательских таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...