у каждого из этих двух методов есть достоинства и недостатки
второй я бы сказал даже проще в реализации..
- кидаешь смайлов в директорию
- в скрипте минимум кода и по событию на клике смайла вставлять что-то типа [smile]
- ну и парсить при отображении..
зато это не позволяет парсить всякие

и проч, т.е. то, что вставлено ручками.. как многие и делают..
Поэтому можно сделать некий симбиоз, импорт в базу смайлов с некой директории и чтобы потом можно было добавить вручную соответствия..