Какая структура лучше для БД?
Храни данные в третьей нормальной форме, если будет большая нагрузка на бд, только тогда будет смысл подумать о денормализации
Доброго. Ни малейшего смысла устраивать это нет. Это вообще не запросы по меркам баз данных, 2000 записей. Там даже без индексов все летать будет.  У вас тут обязательные PK есть, плюс, я надеюсь, FK вы тоже используете.  Самый медленный и загруженный сервер такого запроса не заметит.