我有以下实体:住宅列表,商业列表,租赁列表和特色列表,其中持有每个用户的特色属性。最符合逻辑的方法似乎是利用超类型/子类型方法并创建以下表格:
CREATE TABLE listings (
id ...,
listPrice ...,
...
PRIMARY KEY (id)
)
CREATE TABLE residential (
id ...
...
PRIMARY KEY (id),
FOREIGN KEY id REFERENCES listings(id)
)
CREATE TABLE featuredListings (
id ..,
userId ...,
featuredListingId ...
PRIMARY KEY (id),
FOREIGN KEY featuredListingId REFERENCES listings(id)
)但是当我尝试创建住宅表时,Mysql返回错误"MySQL错误号1005.无法创建表‘住宅’(错误号: 150)“
也许我的DDL是错误的。或者有没有可能在MySQL中同时拥有PK和FK?如果不是,这种情况下最好的设计是什么?
发布于 2010-02-19 13:40:42
根据您在MySQL中使用的引擎,不支持外键。如果您使用的是INNODB,那么它们是受支持的,尽管我不确定id是否可以是FK。我看不出有何不可。
如果您使用的是MYISAM,则不支持FK。
它也有可能失败,因为外键的列名不在括号内。
FOREIGN KEY id REFERENCES listings(id)变成了
FOREIGN KEY (id) REFERENCES listings(id)两者都有这个问题。
雅各布
发布于 2010-02-19 13:42:59
https://stackoverflow.com/questions/2294289
复制相似问题