-
21-09-2019 - |
题
我有以下实体:住宅房源、商业目录、租赁市和特色列保持功能性,为每个用户。最合乎逻辑的似乎是利用超类型/子类型办法,并创建以下表:
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.不能create table'住宅'(errno:150)"
也许我言是不正确的。或是它甚至可能有PK其在同一时间是FK在MySQL?如果不是,什么是最好的设计对于这样的情况?
解决方案
根据你使用MySQL的发动机,外键不支持。如果你正使用InnoDB虽然我不知道,如果ID可以是FK他们的支持。我不明白为什么不能。
如果使用的是MYISAM FKS不被支持。
还有一个机会,这是失败,因为外键的列名都不在括号内。
FOREIGN KEY id REFERENCES listings(id)
变为
FOREIGN KEY (id) REFERENCES listings(id)
两者有这个问题。
雅各
其他提示
- 更改名称之外的关键的"住宅"表。
- 确保父母表中的存在。
不隶属于 StackOverflow