Ух, тут так просто опытом не поделишься. Если только совсем в общих чертах.
По базам данных. Я бы посоветовал PostgreSQL. Мне она больше нравится в плане работы со сложними запросами, с их оптимизацией.
Архитектура БД. Ну всё как всегда: нормальные формы, индексы по полям, по которые используются в условиях, сортировках, группировках. Можно дублировать некоторые данные в 2 таблицах, чтобы избежать жойнов ради мелочей. Например, чтобы вывести имена авторов сообщений на странице не здорово жойнить ради этого таблицу с авторами. Имя автора можно продублировать в таблице с сообщениями.
Некоторые структуры данных, возможно, стоит хранить не в существующих субд, а написать что-то в соответствии со своими потребностиями. Например, если ни реляционаая, ни иерархическая модель данных, никакая другая не устраивает по каким-то причинам, но есть в голове умная мысль, то вот...
Структура кода. Он должен быть понятным, расширяемым, масштабируемым. Есть книжка Макконелла "Совершенный код". Она большая, но полезная. Стоит прочитать.
|