Всем, добрый день! Есть задача, сделать счетчики просмотров. Как правильней спроектировать БД, вот например есть "новости" и "статьи", и поле "просмотры". Как я понял лучше вынести их в отдельную таблицу и сделать многие-ко-многим, но вот что не могу понять, к каждому виду материалов, надо делать отдельную таблицу "просмотров" или как то на общак завязывать? пока сделал так: новости м-к-м просмотры [id_news]-[text_news] / [id_news]-[id_views] / [id_views] [count] ---------------------- и еще вопрос, если у меня есть три таблицы: город->район->улица ['id_city]-[name_city] / [id_area]-[name_area]-[id_city] / [id_street]-[name_street]-[id_area] можно ли выбрать все улицы из выбранного города не используя [id_city] в таблицы "улицы"? и если да, то как это отобразится на времени выборки. спс ))
1. Если под полем "просмотры" ты подразумеваешь просто число - сколько раз страницу открывали, которое будет увеличиваться на 1 при каждом просмотре - я бы не стал выносить в отдельную таблицу. 2. Если шибко важно, чтобы всё было прям очень быстро, то лучше добавить поле `id_city` в таблицу улиц и делать выборку по одной таблице. А при такой структуре б.д., как ты привёл выше - запрос на выборку может быть таким, например: Код (PHP): SELECT `streets`.`id_street`, `streets`.`street_name` FROM `streets` INNER JOIN `areas` USING (`id_area`) INNER JOIN `cities` USING (`id_city`) WHERE `cities`.`name_city` = 'Москва'; Можешь попробовать сперва так написать, потом уже, если действительно будет перегружаться сервер - займёшься оптимизацией.