Небольшие цифры:
1000 - пользователей.
100 - заданий.
Что это? На сайте при выполнение какого-либо задания, нужно заносить в БД: единицу в столбец с номером задания и строку с id пользователем, грубо говоря поставить флаг, что задания этим пользователем выполнено.
Вопрос:
Как хранить все эти значения более рационально? Явно мой способ самый дубовый, создать таблицу и все. Я думал создать массив и где идет перечисление: 001010001010, номер задания, это индекс-1(с нуля перебор начинать если), но подумал, а что если задания будут добавляться, а они будут добавляться, там уже надо подумать, как же сделать, можно просто с запасом сделать.
Обычно создают отдельные таблицы: в вашем случае пользователей, заданий и выполненных пользователями заданий. В последней таблице столбцы с id пользователя (индексировать для быстрого select-а) и id выполненного задания. В запросе соединяете все это, используя JOIN. Рекомендуется к прочтению: zlob.in/2013/01/struktura-tablic-dlya-kataloga-tov... (модель структуры хранения EAV); www.anton-pribora.ru/articles/mysql/mysql-join
Разбей ее на пару таблиц. Такой способ будет хорош, если у вас много категорий и заданий.
Поискать надо на форумах про оптимизации. Там много факторов играет, предугадать не просто.
Для правильного вопроса надо знать половину ответа
Если надо записывать результат выполнения (оценку), то таблица (`user_id`, `test_id`, `result`), если только факт выполнения - то (`user_id`, `test_id`). В обоих случаях уникальный ключ из пары `user_id`, `test_id`.