我需要在Employees数据库中的HotelsOracle表之间创建一个相交表:
一个Employee可以在多个Hotels中工作,一个Hotel可以有多个Employees
不过,我想我可能不必要地把自己弄糊涂了。
首先,我首先在FK表的Employee-Hotel-ID列和Employees表的Hotel-ID列之间创建一个Hotels
但后来我意识到这不允许许多员工在许多酒店工作。

最佳答案

使用en.wikipedia.org/wiki/junction_表中的方言,我们有:

CREATE TABLE Hotels (
    hotel_id INTEGER PRIMARY KEY,
    ...
)

CREATE TABLE Employees (
    employee_id INTEGER PRIMARY KEY,
    ...
)

-- This is the junction table.
CREATE TABLE WorksAt (
    hotel_id INTEGER REFERENCES Hotels (hotel_id),
    employee_id INTEGER REFERENCES Employees (employee_id),
    PRIMARY KEY (hotel_id, employee_id)
)

10-01 12:13