广告表(advert): 字段名 类型 描述 id int 广告ID,主键 name varchar 广告名称 position_id int 广告位置ID media_id int 广告图片ID start_date 开始日期 end_date 结束日期 link varchar 广告链接 status int 状态 广告位置表(ad_position): 字段名 类型 描述 id int 广告位置ID,主键 name varchar 位置名称 width int 广告位置宽度 height int 广告位置高度 desc varchar 位置描述,其中广告表中的position_id存储的是广告位置表中的id,那么他们需要简历外键关系吗?如果要,那么在删除advert表中信息时,不能删除ad_position对应的数据,该如何设置外键呢?
时间: 2024-02-01 17:02:45 浏览: 152
android文档
是的,广告表和广告位置表需要建立外键关系。在MySQL中,可以使用以下SQL语句创建外键关系:
```
ALTER TABLE advert ADD CONSTRAINT fk_advert_position_id FOREIGN KEY (position_id) REFERENCES ad_position(id) ON DELETE RESTRICT;
```
这条语句的意思是,在advert表中的position_id字段建立外键关系,参照ad_position表中的id字段,同时设置ON DELETE RESTRICT选项,表示在删除ad_position表中的数据时,如果该位置被advert表中的广告所使用,那么该位置不能被删除,以保证数据的完整性。
阅读全文