私は、budget2000テーブルのカテゴリをmainBudgetのカテゴリの外部キーにしようとしています。カテゴリは一意の番号ではないため、主キーにすることはできません。コードを実行すると、有名なエラー1005が発生します。mainBudgetの主キーのカテゴリ部分をidで作成すると、コードが実行されますが、後で問題が発生します。カテゴリを外部キーにするにはどうすればよいですか。私はmysql5.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;