Vì vậy, tôi phải để tạo ra sơ đồ này + các mối quan hệ chính xác cách ERD này miêu tả nó. Ở đây tôi chỉ hiển thị các bảng mà tôi đang gặp vấn đề với:Tạo bảng PostgreSQL + mối quan hệ - CÁC VẤN ĐỀ với các mối quan hệ - One to One
Vì vậy, tôi đang cố gắng để làm cho nó 1-1 nhưng đối với một số lý do, không có vấn đề gì tôi thay đổi, tôi nhận được một đến nhiều trên bất cứ điều gì bảng có khóa ngoại.
Đây là sql của tôi cho hai bảng này.
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)
);
Ở đây tôi cũng nhận được điều tương tự. Tôi không nhận được mối quan hệ một, nhưng một đến nhiều. Invoiceline là một thực thể yếu.
Và đây là mã của tôi cho hình ảnh thứ hai.
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)
);
Tôi sẽ đánh giá cao bất kỳ trợ giúp nào. Cảm ơn.
Bạn mong đợi mối quan hệ 1: 1 được mô hình hóa như thế nào? Với một ràng buộc 'UNIQUE' trên cột khóa ngoài? Với một ràng buộc chìa khóa nước ngoài có thể trì hoãn đối ứng? –
@CraigRinger, tôi ước tôi có cơ sở kiến thức để trả lời câu hỏi của bạn, nhưng tôi chỉ đơn giản là một vài bài giảng trong lớp DB đầu tiên của tôi. Câu hỏi của tôi là như sau: Làm cách nào để tạo mối quan hệ một đến một? Vì lý do nào đó, chúng tôi đã nói chuyện chủ yếu về nhiều người và một đến nhiều người –