php - MySQL需要设置外键吗?

标签 php mysql sql foreign-keys

假设您在 MySQL 数据库中有如下两个表:

table 上的人:

  primary key: PERSON_ID,
  NAME,
  SURNAME, etc.

表地址:

  primary key: ADDRESS_ID,
  foreign key: PERSON_ID,
  addressLine1, etc.

如果您通过 PHP 管理行的创建(在两个表中)和数据的检索,您还需要在数据库中创建物理关系吗?如果是,为什么?

最佳答案

是的,一个具体的原因是如果您想连接表,可以更快地检索行。创建外键约束会自动在列上创建索引。

所以表地址的架构应该是这样的,(假设 People 的表主键是 PERSON_ID)

CREATE TABLE Address
(
    Address_ID INT,
    Person_ID INT,
    ......,
    CONSTRAINT tb_pk PRIMARY KEY (Address_ID),
    CONTRRAINT tb_fk FOREIGN KEY (Person_ID) 
        REFERENCES People(Person_ID)
)

关于php - MySQL需要设置外键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13086160/

相关文章:

javascript - 将日期输入 SQL 数据库

mysql - 连接 3 个表时出现错误 1066

php - 如何选择插入行的多列主键?

php - PHP7中的随机字符串

php - 如何用 'x' 替换 mysql 列中的某些字符?

java - 从php mysql循环加载图像时对话框不断出现

php - JOIN 与第二个选择结果

php - Yii2 activerecord 自定义属性

php - WhereHas Laravel 中的关系计数条件是什么

php - Laravel 4 leftJoin mySQL 语句未正确返回