Домашняя страница самого страшного прерывания
В настоящее время интернет стремится быть социальным. Появилось множество готовых движков для создания подобных сайтов (например, WordPress, Cogear, Livestreet). Выбрать трудно, т.к. что-то из них попроще, но не достаточно подходит под цели, а что-то идеально бы подошло, если бы не было так ужасно исполнено. И в какой-то момент вы решаете сами создать собственный социальный сайт.
Что нужно знать о социальных сайтах прежде чем начать создавать модель на бумаге? Социальные сайты позволяют пользователям объединяться в блоги и даже сообщества, помогают обмениваться друг с другом информацией и просто общаться. Давайте сформулируем задачу более конкретно. Допустим, мы нуждаемся в сайте, который бы хостил одно или более сообществ. У каждого сообщества есть свои блоги, куда они пишут свои записи. Сообщества (а в частности их основатели) составляют списки пользователей, которые могут модерировать других пользователей. Эти же основатели решают что могут делать пользователи со своими записями. Ну и конечно у пользователей есть свои собственные блоги и друзья. Некоторые записи пользователей могут не попадать в общий поток записей сообщества или блога. Но последние две фичи мы оставим на вкусненькое (вторую версию) и не будем сейчас этим заниматься. Пусть это будет система блогов, подобная Хабрахабр, но с возможностью объединения пользователей в сообщества. Итак, мы уже увидели перспективы такого сайта и примерно накидали в уме базу данных. Давайте попробуем ее конкретизировать и составим ER модель.
Что нам нужно от сайта:
К сожалению, я еще не до конца разобрался с MySQL Workbench, поэтому комментарии на картинке отсутсвуют. Зато они присутствуют в прилагаемом SQL файле. БД лучше всего проектировать перед написанием кода и только после того, как вы предъявили требования к системе. Изменения в ходе разработки могут нанести серьезный ущерб как временной, так и экономический (как в случае с коммерческими разработками). Конечно же, мы не правильные программисты из Москвы с белоснежными ноутбуками и прочим интерьером, а самые обычные программисты из остальной, более значимой части России, и поэтому оставим пару доработок на будущее, чтобы жизнь медом не казалась. Самые глазастые уже наверно догадались какие.
На модели мы видим сообщества, права, блоги и записи. Примечательно, что запись может участвовать сразу в нескольких блогах и даже в разных сообществах. У записей могут быть дополнительные мета-записи. Тоже самое у пользователей. Сделано это для более мягкого шаблонизирования сайта. Например, можно указать 2 контакта Jabber и 4 livejournal блога и больше ничего.
Начинающие программисты часто ошибаются в проектировании базы данных (толи от лени, толи от незнания). Обратите внимание, что в базе используются как первичные ключи, так и внешние. Это гарантирует целостность данных. Если вы вдруг попытаетесь удалить пользователя, то его записи не будут затеряными в любом случае. Можно или удалить все его записи, или изменить идентификатор пользователя записей на другой. Если у записей есть комментарии, то при удалении записей надо удалить и комментарии.
Изучайте структуру БД. Во второй части мы поговорим о выборе фреймворка и проектировке будущего сайта.
http://museum.blindage.org/2010/08/sun-sparc-station-20/
По причине покупки уже второго смартфона (себе и жене) начал искать информацию по нему в сети. К сожалению, она немного разрознена и поэтому сделал форум специально посвященный его.
Перейти на сайт «Клуб пользователей смартфона Acer E110».
UPDATE! Сайт перенесен на домен acer-e110.net!
У меня дома есть домашний файловый сервер. Иногда нужно срочно запустить Windows XP и протестить программу, но по очевидным причинам этой ОС нет рядом. Принял решение установить пару виртуалок на этот сервер :)
Процессор Pentium III 735 МГц и 384 МБ ОЗУ это не слишком шустро, но довольно терпимо.
Прочитать полностью …
© Владимир Смагин, 2005-2010 г.
Live long and prosper.