field'ın unique yapılmasının amacı php nin zahmetinden kurtulmaktır zaten. unique olarak tanımladıktan sonra php ile var mı yok mu diye kontrol etmemize gerek yok, mysql bizim yerimize onu php ye göre çok çok daha hızlı yapmaktadır.
eğer php ile mysql e bir verigirişi yaparken unique alanı kontrol ettirmezseniz query patlar sonra örnek veriyorum forum da kullanıcı post atar ama veritabanına kaydolmaz sonucta aynı sef_title unique(yani essiz olacagi icin) sorgunuz false olarak dönecektir. ama şöyle bir yontem izlenebilir kontrol
if ($query == false ) {
$sef_title = 'baslik-1';
// gibisinden seftitle degistirilebilir ve query tekrarlanabilir.
}sonucta buda bir kontroldur mysql kontrolu yapar ve veri ayni sef title li veri girisine izin vermez . ama sonucta php ilede kontrol yapmaniz gereklidir. yoksa query hep false donecektir.
bir senaryo yaratalim peki 1 kisi konu acti. konu ismi seftitle
sonra 20.kisi gene ayni konuyu acti bu sefer ne olacak ?
seftitle-1-1-1-1-1-1-1-1-1-1-1.html sizce 1 rakam icin bunca zahmete girmeye gerke varmi id yi primary index i yaparsiniz auto_inc verirsiniz boylece hic bir zaman ayni degerlerin girilmesi soz konusu olamaz.