CREATE TABLE sampProduct
(
Product_ID VARCHAR(15) NOT NULL,
Supplier_ID INT NOT NULL,
Category_ID INT NOT NULL,
Unit_Price DECIMAL(10, 2)
PRIMARY KEY(Product_ID)
)
CREATE TABLE sampMachine
(
M_Product_ID VARCHAR(15) NOT NULL,
Serial_No VARCHAR(15) NOT NULL,
Machine_Model VARCHAR(20),
PRIMARY KEY(M_Product_ID, Serial_No),
FOREIGN KEY(M_Product_ID) REFERENCES sampProduct(Product_ID)
)
CREATE TABLE sampService
(
Service_ID VARCHAR(15) NOT NULL,
Serial_No VARCHAR(15) NOT NULL,
Complaint VARCHAR(40) NOT NULL,
PRIMARY KEY(Service_ID),
FOREIGN KEY(Serial_No) REFERENCES sampMachine(Serial_No)
)
Machine は Product のサブタイプです。M_ProductID は、親テーブル Product の主キーをこのキーで参照しています。また、Serial_No は、マシンを一意に識別するために使用されます。問題は、マシンのシリアル番号を追跡したいので、Serial_No から Service テーブルへの外部キーを作成したいということです (これは、たとえば、モデルやタイプごとに多くのマシンを持つことができるが、それぞれ固有のシリアル番号があります) が、作成にエラーがあります。あなたは私を助けることができます?