2014-12-03 59 views
0
CREATE TABLE Album (
    name   VARCHAR(50), 
    lenght FLOAT, 
    genre VARCHAR(30), 
    nrSongs INT, 

    PRIMARY KEY (name, writer), 
    FOREIGN KEY (writer) REFERENCES Musician(name) OR Band(name), 
    FOREIGN KEY (Studio) REFERENCES Studio(name) 

); 

好的这就是我想要做的,音乐家或乐队,但是这给了我一个OR语句错误,你知道实现这个的正确方法吗?我找不到它。 谢谢:)在外键中创建带有两个引用的表

+0

看看这里:http://stackoverflow.com/questions/7844460/foreign-key-to-multiple-tables – deterministicFail 2014-12-03 16:57:58

回答

1

不可能。外键是一个表中的一个字段与另一个表中的另一个字段之间的直接链接。它是1:1。在外键定义中不能有n:1,1:n或n:n映射。

另外,您的整体表格定义无效。您没有writer字段,因此您的主键和写入器FK无论如何都会失败。

为了这个特殊的目的,为什么不让每个人都成为一个“乐队”。独奏艺术家只是一个恰好有一个成员的乐队。

+0

谢谢,这是一个很好的解决方案,但我需要两个表,是否没有其他选择? – Pedro 2014-12-03 17:25:06

相关问题