Одно предложение: имейте 2 таблицы - «страницы» и «категория».Столбцы на страницах:
Имя [varchar] URL [varchar] Категория [tinyint]
Для категории, как вы спроектировали:
catID [1 | 2 | 4 |8 | 16] (5 возможных значений для 5 категорий) catName [varchar]
Я предполагаю, что у вас есть небольшое количество категорий (<8), если это число увеличивается до 31, вместо этого используйте целое число (используя 4вместо 1 байта на строку).Теперь Категория в таблице страниц не обязательно должна быть FK для другой таблицы.Вы можете сделать логическое ИЛИ для вставки / обновления и И для выбора в своем коде jdbc, если URL принадлежит более чем одной категории.Возможно, это не лучший дизайн БД, но это должно минимизировать занимаемое вами пространство БД на случай, если вам придется экономить миллионы страниц.Из вашей постановки проблемы я не понимаю, зачем вам ПК в таблице ... исключите его, чтобы сохранить еще несколько байтов в каждой строке.С уважением, - MS </p>