18

したがって、この ERD が示すとおりに、このスキーマと関係を作成することになっています。ここでは、問題があるテーブルのみを示します。

ONE TO ONE のはずなのに ONE TO MANY になってしまう

だから私はそれを1対1にしようとしていますが、何らかの理由で、何を変更しても、外部キーを持つテーブルで1対多になります。

これは、これら 2 つのテーブルに対する私の sql です。

        CREATE TABLE lab4.factory(

            factory_id      INTEGER         UNIQUE,
            address         VARCHAR(100)    NOT NULL,
            PRIMARY KEY ( factory_id )

        );

        CREATE TABLE lab4.employee(

            employee_id     INTEGER         UNIQUE,
            employee_name   VARCHAR(100)    NOT NULL,
            factory_id      INTEGER         REFERENCES      lab4.factory(factory_id),
            PRIMARY KEY ( employee_id )

        );

ここで私は同じことを取得します。私は1対1の関係ではなく、1対多の関係を得ています。Invoiceline は弱いエンティティです。

1対1である必要があります

そして、これが2番目の画像のコードです。

        CREATE TABLE lab4.product(

            product_id      INTEGER     PRIMARY KEY,
            product_name    INTEGER     NOT NULL

        );


        CREATE TABLE lab4.invoiceLine(

            line_number     INTEGER     NOT NULL,
            quantity        INTEGER     NOT NULL,
            curr_price      INTEGER     NOT NULL,
            inv_no          INTEGER     REFERENCES      invoice,
            product_id      INTEGER     REFERENCES      lab4.product(product_id),
            PRIMARY KEY ( inv_no, line_number )

        );

助けていただければ幸いです。ありがとう。

4

1 に答える 1