Я пытаюсь, чтобы категории в моей таблице budget2000 были внешним ключом для категории в mainBudget. Категория не является уникальным числом, поэтому она не может быть первичным ключом. Когда я запускаю код, я получаю известную ошибку 1005. Когда я делаю категорию частью первичного ключа в mainBudget с идентификатором id, код запускается, однако это создаст проблемы позже. Что я могу сделать, чтобы сделать категории внешним ключом. Я использую MySQL 5.5.
Вот мой код
create table mainBudget(
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
year Year NOT NULL,
amount double(10,2) NOT NULL,
category SMALLINT UNSIGNED NOT NULL,
primary key(id)
)ENGINE=INNODB;
create table budget2000(
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
categories SMALLINT UNSIGNED NOT NULL,
INDEX categoryNumber (categories),
subCategory SMALLINT NOT NULL,
amount FLOAT(10,2) NOT NULL,
date DATE NOT NULL,
description VARCHAR(300) NOT NULL,
primary key(id),
FOREIGN KEY (categories) REFERENCES mainBudget(category)
)ENGINE=INNODB;