Чтобы получить что-то вроде 3-й нормальной формы, вам в основном нужно как минимум 3 таблицы.
У вас есть таблица тестовых наборов (которая является вашей основной таблицей, в которой хранятся все тестовые наборы). Затем у вас есть таблица модулей, которая создает запись для каждого модуля, созданного пользователем. Затем у вас есть таблица test_modules с внешним ключом к таблице модулей и таблице тестовых примеров.
Когда вы создаете новый модуль, вы собираетесь вставить новую строку в таблицу модулей. Для каждого теста, выбранного для этого модуля, вы вставите строку в таблицу test_modules. Каждая строка будет иметь FK для таблицы модулей (чтобы вы знали, к какому модулю она принадлежит) и FK для таблицы тестовых случаев (чтобы вы знали, что это за тестовый пример).
testcase Table (Master Table) {
id
test_case_name
}
modules table {
id (PK)
module_name (varchar)
creater (varchar)
}
test_modules table {
id (PK)
testcase_id (FK to testcase.id)
module_id (FK to modules.id)
}
Таким образом, чтобы получить контрольные примеры для определенного модуля, вы можете сделать запрос следующим образом:
select *
from modules m, testcase t, test_modules tmod
where m.id=tmod.module_id and tmod.testcase_id = t.id
Это ОЧЕНЬ упрощенный и неэффективный запрос, но он поможет вам начать работу.