Этот вид стола будет намного легче работать.
create table item(
maincatg varchar(25),
subcatg varchar(25),
price float(5),
type tinyint(1),
primary key(maincatg, subcatg)
);
Это также выглядит, как вы будете иметь много дубликатов данных в вашем maincatg и subcatg столбцов. Если бы я делал это, у меня были бы те в другом столе или, возможно, два. Вы присоединяетесь к ним с помощью идентификаторов.
Возможно, вам будет легче, если вы прочитаете нормализацию базы данных. Это простое понятие, чтобы освежиться до тех пор, пока вы найдете достойный учебник, и есть много.
Если вы застряли, используя базу данных, которую вы не можете изменить по какой-либо причине, вам, вероятно, следует изменить свой вопрос, чтобы сказать это, иначе большинство ответов, вероятно, будут похожи на мои.
Почему 2 стола? Они одинаковые. Таблица похожа на класс или тип, и обычно бессмысленно иметь два одинаковых класса. –
Если вы намеренно не разбиваете свои данные, вам лучше использовать только одну таблицу с добавлением флага (как другого столбца) для указания типа. – Abecee