Mysql
‘ibfk’ 在 MySQL 中代表什麼?
如果我在 phpmyadmin 中為表“photos”創建一個外鍵約束,我稍後會看到該約束名為“photos_ibfk_1”,下一個約束名為“photos_ibfk_2”,依此類推。由此我收集到
$$ tablename $$_ibfk_constraintIndex 是 MySQL 中 DB 約束的約定。它是否正確?IBFK 代表什麼?
innodb 外鍵。這只是簡寫的命名約定。您可以將其稱為 asdfqwerty,並且該名稱仍然有效。
儘管外鍵名稱可以是任何名稱,但遵循將表名稱放在首位的約定實際上是一個好習慣。
最重要的原因是外鍵名稱在數據庫中必須是唯一的(與索引名稱相反,索引名稱只能在每個表中唯一)。因此,通過遵循這個約定,外鍵名稱只需要在每個表中是唯一的。
就個人而言,我使用約定
[table_name]_fk_[field_name]
。為了命名您的外鍵,您必須明確地拼出表上的約束,而不僅僅是外鍵。
簡單的方法(自動命名,會產生
[table_name]_ibfk_[index]
):ALTER TABLE `[table_name]` ADD FOREIGN KEY (`[field_name]`) REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);
顯式方法(將導致
[table_name]_fk_[field_name]
):ALTER TABLE `[table_name]` ADD CONSTRAINT `[table_name]_fk_[field_name]` FOREIGN KEY (`[field_name]`) REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);