所以我应该完全按照这个 ERD 描述的方式来创建这个模式 + 关系。在这里,我只显示我遇到问题的表格:
所以我试图做到一对一,但出于某种原因,无论我改变什么,我都会在任何有外键的表上得到一对多。
这是我对这两个表的 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 )
);
在这里我得到同样的东西。我不是一对一的关系,而是一对多的关系。Invoiceline 是一个弱实体。
这是我第二张图片的代码。
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 )
);
我将不胜感激任何帮助。谢谢。