的危害慎用MySQL:主键当外键的危机隐患(mysql把主键当外键)
MySQL,目前为止是全球最流行的关系型数据库管理系统,其灵活的功能深受全球用户的喜爱和支持。但是,也有一些危险要警惕,其中一个就是主键作为外键的危机隐患。
主键是一个字段,可以确定数据表当中每一行数据的独特性,在数据表的设计中,应该首先设定好主键,而不应该作为外键被引用。因为如果外键指向一个不存在的主键,很容易导致数据混乱而难以调整,更重要的是,数据的安全性也很难保证,特别是在连接不同的数据表时,如果外键指向不正确的ID,可能会删除错误的数据。
MySQL允许在一些特殊情况下,让主键也当作外键,但是对于专业开发者而言,不推荐这么做。下面是一个可行的MySQL代码,可以清楚地看到主键ID被作为外键使用:
CREATE TABLE parents
(parent_id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
name_first varchar(20),name_last varchar(20)
);
CREATE TABLE children(
child_id int NOT NULL AUTO_INCREMENT PRIMARY KEY,parent_id int,
name_first varchar(20),name_last varchar(20),
FOREIGN KEY(parent_id) REFERENCES parents(parent_id));
尽管MySQL允许上述操作,但从长远角度出发不推荐把主键作为外键使用。对超级管理员而言,应该避免不正确的引用,防止出现数据安全性完全无法保障的状况。最好通过索引和外键约束来更好的确保安全性,避免数据混乱和错位的出现。
总之,在使用MySQL的时候,应当注意不要把主键作为外键使用,以防发生不可预料的后果,它可能是带来安全隐患而不可挽回的。