止まる。カテゴリごとにテーブルを作成しないでください。最初から適切なスキーマ設計を使用してください。データを通常どおりに維持およびクエリできるようにすることで、大きな成果が得られます。
あなたの場合、スキーマは次のようになります
CREATE TABLE categories
(
category_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
category_name VARCHAR(128)
);
CREATE TABLE items
(
item_id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
category_id INT,
item_name VARCHAR(128),
FOREIGN KEY (category_id) REFERENCES categories (category_id)
);
新しいアイテムを挿入してカテゴリに関連付けるには
INSERT INTO items (category_id, item_name)
VALUES (1, 'Hard disk');
INSERT INTO items (category_id, item_name)
VALUES (2, 'Java');
カテゴリ内のアイテムを取得するにはHardware
SELECT item_id, item_name
FROM items i JOIN categories c
ON i.category_id = c.category_id
WHERE c.category_name = 'Hardware'
またはカテゴリごとのアイテム数を簡単に取得する
SELECT category_name, COUNT(item_id) no_items
FROM categories c LEFT JOIN items i
ON c.category_id = i.category_id
GROUP BY c.category_id, c.category_name;
これがSQLFiddleのデモです
アイテムが異なるカテゴリに属する可能性がある場合は、多対多テーブルが必要になりますcategories_items
。