gpt4 book ai didi

mysql - 帮助设计Mysql数据库

转载 作者:行者123 更新时间:2023-11-29 02:08:10 25 4
gpt4 key购买 nike

我有以下实体:住宅列表、商业列表、租赁列表和为每个用户保存特色属性的特色列表。最合乎逻辑的似乎是利用父类(super class)型/子类型方法并创建下表:

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?如果不是,这种情况的最佳设计是什么?

最佳答案

根据您在 MySQL 中使用的引擎,不支持外键。如果您使用的是 INNODB,它们是受支持的,尽管我不确定 id 是否可以是 FK。我不明白为什么不。

如果您使用的是 MYISAM,则不支持 FK。

也有可能失败,因为外键的列名不在括号内。

FOREIGN KEY id REFERENCES listings(id)

成为

FOREIGN KEY (id) REFERENCES listings(id)

两者都有这个问题。

雅各布

关于mysql - 帮助设计Mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2294289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com