Answers:
尽管外键名称可以是任何东西,但遵循将表名放在第一位的惯例实际上是一种好习惯。
这样做的最重要原因是,外键名称在数据库中必须是唯一的(相反,索引名称只能在每个表中唯一)。因此,遵循此约定,外键名称仅在每个表中必须唯一。
我个人使用约定[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]`);