1
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 テーブルへの外部キーを作成したいということです (これは、たとえば、モデルやタイプごとに多くのマシンを持つことができるが、それぞれ固有のシリアル番号があります) が、作成にエラーがあります。あなたは私を助けることができます?

4

1 に答える 1