Dobrze, że moje ulubione forum wróciło

Mam takie filozoficzne pytanie - dajmy na to system komentarzy do stron - użytkownicy mogą się rejestrować, logować i jako zalogowani wysyłać komentarze.
W jednym z moich skryptów, który już zrealizowałem, identyfikatorem był zawsze "UserName" (np. "Tomek") - tzn. w tabeli użytkowników też był unikalny id, ale skrypt posługiwał się głównie UserName - wyszukując komentarze danego usera, sprawdzając czy jest zalogowany etc robię WHERE username='jakis nick'.
Ale tak spojrzałem teraz na parę innych skryptów i widzę, że one posługują się (wewnętrznie) id's - czyli jeśli mają być na ekranie wydrukowane np. komentarze/posty usera "Tomek" to adres url wygląda np. tak: "pokaz_profil.php?user=tomek", po czym skrypt szuka "tomek" w tabeli userów by wydobyć ID (typ:int) , a następnie drukuje wszystkie komentarze zrobione przez ID tego usera.
U mnie to wygląda tak, że szukane są wszystkie komentarze gdzie username=tomek. Niby prostsze, więc czemu inni tak nie robią? Może to wolniejsze jest? Albo są jakieś inne przyczyny?
Podobnie teraz chcę dać możliwość dodawania załączników. Chcę to zrobić tak, że załączniki w tabeli "posts" to bedą po prostu nazwy plików odzielone np. średnikiem. A w tych skryptach widzę oddzielną tabelę "attachments" z id's i nazwami plików, i gdy user do swojego posta dodaje załącznik - wpierw skrypt dodaje go do tabeli "attachments" a w tabeli "posts" wrzuca tylko idenfyfikatory (int) tych załączników - a ja nie kumam po co tak komplikować?