所以我应该创建这个模式+关系,就像这个ERD描述它的方式一样。在这里,我只能说明我有问题的表:创建PostgreSQL表格+关系 - 带关系的问题 - 一对一
所以我想使它一对一,但出于某种原因,不管我改变,我得到一对多就什么表具有外键。
这是我的这两个表的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)
);
我将不胜感激任何帮助。谢谢。
您如何预测建立1:1关系?在外键列上有'UNIQUE'约束?有相互可推迟的外键约束? – 2013-02-23 05:21:05
@CraigRinger,我希望我有知识基础来回答你的问题,但我只是在我的第一个DB类中的几个讲座。我的问题如下:我如何创建一对一的关系?出于某种原因,我们主要讨论了多对多和多对多 – 2013-02-23 05:26:48