php – 有26个外键可以替代MySQL表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 有26个外键可以替代MySQL表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1996字,纯文字阅读大概需要3分钟。
内容图文
![php – 有26个外键可以替代MySQL表](/upload/InfoBanner/zyjiaocheng/906/3af53c64343e4d1194c16b61e552b51f.jpg)
我有一个InnoDB MySQL数据库,其表格需要能够通过外键连接到其他26个表中的一个.每条记录一次只能连接到这26条记录中的一条.该表可能包含不超过10,000条记录.有没有其他方法可以做到这一点?
-- -----------------------------------------------------
-- Table `db_mydb`.`tb_job`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_mydb`.`tb_job` (
`job_id` INT(11) NOT NULL AUTO_INCREMENT ,
// Removed 26 other fields that the table requires
`job_foreignkey_a_id` INT(11) NULL DEFAULT NULL ,
`job_foreignkey_b_id` INT(11) NULL DEFAULT NULL ,
`job_foreignkey_c_id` INT(11) NULL DEFAULT NULL ,
// Removed the other 23 foreign keys fields that are the same
PRIMARY KEY (`job_id`) ,
CONSTRAINT `fka_tb_job_tb`
FOREIGN KEY (`job_foreignkey_a_id` )
REFERENCES `db_mydb`.`tb_foreignkey_a` (`foreignkey_a_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fkb_tb_job_tb`
FOREIGN KEY (`job_foreignkey_b_id` )
REFERENCES `db_mydb`.`tb_foreignkey_b` (`foreignkey_b_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fkc_tb_job_tb`
FOREIGN KEY (`job_foreignkey_c_id` )
REFERENCES `db_mydb`.`tb_foreignkey_c` (`foreignkey_c_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
// Removed the other 23 foreign keys constraints that are the same
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
CREATE INDEX `fka_tb_job_tb` ON `db_mydb`.`tb_job` (`job_foreignkey_a_id` ASC) ;
CREATE INDEX `fkb_tb_job_tb` ON `db_mydb`.`tb_job` (`job_foreignkey_b_id` ASC) ;
CREATE INDEX `fkc_tb_job_tb` ON `db_mydb`.`tb_job` (`job_foreignkey_c_id` ASC) ;
// Removed the other 23 foreign keys indexes that are the same
解决方法:
这是通用外键的问题,MySQL和朋友往往不支持.有两种方法可以做到这一点.
第一个,就像你所做的那样,是可以为空的外键,每种类型都有一个.
另一个,就像在Django的内容类型中一样,是一个连接表,每一行都有一个行id和一个指定要查找的表的字段.然后,您的代码必须根据字段的内容来制定SQL查询.它运作良好,但有局限性:
第一个的缺点是膨胀,但它带给你正常FK的优点,即参照完整性和SQL连接等,这两者都非常有价值.你不能用第二种方法获得那些.
内容总结
以上是互联网集市为您收集整理的php – 有26个外键可以替代MySQL表全部内容,希望文章能够帮你解决php – 有26个外键可以替代MySQL表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。