Аттачи в отдельной таблице и присоединять по id записи или как-то иначе?
Если аттачи указываются один раз и навсегда, то неважно. А если потом например требуется редактировать или удалять какие-то отдельные аттачи, то однозначно в отдельной таблице. Да и правилам нормализации если следовать, то лучше в отдельной.
Хэштеги также отдельной таблицей или лучше простым перечислением в отдельной строке таблицы самой записи.
Отдельной таблицей, с индексом по хэштегу. Если в поле TEXT перечислением их указывать, то не сможете эффективно поиск по хэштегам делать. В MySQL правда есть полнотекстовые индексы, но не рекомендую их использовать.