我需要在Employees
数据库中的Hotels
和Oracle
表之间创建一个相交表:
一个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)
)