Yabancı anahtar isimleri herhangi bir şey olsa da, ilk olarak tablo ismini koyma kurallarına uymak gerçekten iyi bir uygulamadır.
Bunun en önemli nedeni, yabancı anahtar adlarının bir veritabanında benzersiz olması gerektiği (aksine, yalnızca her tabloda benzersiz olması gereken dizin adlarının sıralanması). Dolayısıyla, bu sözleşmeyi izleyerek, yabancı anahtar isimlerinin sadece her tabloda benzersiz olması gerekir.
Şahsen ben sözleşmeyi kullanıyorum [table_name]_fk_[field_name]
.
Yabancı anahtarlarınızı adlandırmak için, yalnızca yabancı anahtar yerine tablodaki kısıtlamayı açıkça belirtmeniz gerekir.
Basit yöntem (otomatik adlandırma, sonuçlanacaktır [table_name]_ibfk_[index]
):
ALTER TABLE `[table_name]`
ADD FOREIGN KEY (`[field_name]`)
REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);
Açık yöntem (sonuçlanacaktır [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]`);