mysql多个表引用同一外键

ubby3x7f  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(323)

我有三张这样的table。

location(id,name)

tour(id,name)

hotel(id,name)

上面的三张table(位置、旅游和酒店)有很多图片。
所以传统的存储图像的方法是

location_images(id,image_url,location_id)

tour_images(id,image_url,tour_id)

hotel_images(id,image_url,hotel_id)

不是像这样把图像放在三个不同的表中,我能做一个表来存储所有这三种类型的图像吗?

images(id,image_url,type,foreign_key)

如何使用mysql实现这一点?
我怎么做我的工作 foreign_key 连接到 type ?
我正在使用mysql 5.7.24-0ubuntu0.18.04.1 (Ubuntu)

qyuhtwio

qyuhtwio1#

是的,你可以。

CREATE TABLE images (
id INT PRIMARY KEY AUTO_INCREMENT,
image_url VARCHAR(255) NOT NULL,
image_belongs_to_type ENUM('location', 'tour', 'hotel') NOT NULL,
post_id INT NOT NULL);

当你打电话给形象只是提供职位 IDENUM 价值观(位置、旅游和酒店)
如:

select * from images where image_belongs_to_type ='location' and post_id = 'location_id'
select * from images where image_belongs_to_type ='tour' and post_id = 'tour_id'
select * from images where image_belongs_to_type ='hotel' and post_id = 'hotel_id'

枚举-mysql

相关问题