Ну вот для "Тесты_пользователей" поле "id_юзера" это внешний ключ на юзера. Тут нормально. А для "Вопросы_тестов_пользователей" хранение "id_юзера" уже бессмысленно, т.к. есть "id_теста" и всегда можно заджоинить.
По поводу "один вопрос может быть чекбоксами, другой радиокнопками". Можно ввести параметр внутри таблицы вопросов, который отвечает за тип вариантов ответа - RADIO|CHECKBOX|INPUT. И в зависимости от этого типа на UI рисовать нужные поля для вариантов (если они есть).
Варианты ответов лучше хранить в отдельной таблице, деструктурированные данные гораздо проще использовать. Просто задаем внешний ключ на "id_вопроса"