INT 21h

Домашняя страница самого страшного прерывания

Понравилась работа моего сайта? Вы можете купить такую же VPS всего за 9.95$ в месяц (256МБ ОЗУ и 20ГБ места). Поддержка на русском языке, принимают Webmoney.

Как сделать собственный социальный сайт (Часть 1)

№ 2386. August 29th, 2010,
Теги:

В настоящее время интернет стремится быть социальным. Появилось множество готовых движков для создания подобных сайтов (например, WordPress, Cogear, Livestreet). Выбрать трудно, т.к. что-то из них попроще, но не достаточно подходит под цели, а что-то идеально бы подошло, если бы не было так ужасно исполнено. И в какой-то момент вы решаете сами создать собственный социальный сайт.

Что нужно знать о социальных сайтах прежде чем начать создавать модель на бумаге? Социальные сайты позволяют пользователям объединяться в блоги и даже сообщества, помогают обмениваться друг с другом информацией и просто общаться. Давайте сформулируем задачу более конкретно. Допустим, мы нуждаемся в сайте, который бы хостил одно или более сообществ. У каждого сообщества есть свои блоги, куда они пишут свои записи. Сообщества (а в частности их основатели) составляют списки пользователей, которые могут модерировать других пользователей. Эти же основатели решают что могут делать пользователи со своими записями. Ну и конечно у пользователей есть свои собственные блоги и друзья. Некоторые записи пользователей могут не попадать в общий поток записей сообщества или блога. Но последние две фичи мы оставим на вкусненькое (вторую версию) и не будем сейчас этим заниматься. Пусть это будет система блогов, подобная Хабрахабр, но с возможностью объединения пользователей в сообщества. Итак, мы уже увидели перспективы такого сайта и примерно накидали в уме базу данных. Давайте попробуем ее конкретизировать и составим ER модель.

Что нам нужно от сайта:

  1. Одно сообщество на одном домене
  2. Пользователь может зарегистрироваться
  3. Пользователь имеет права доступа
  4. Пользователь может создавать свои сообщества, блоги, записи, комментарии
  5. Пользователь может их редактировать и удалять
  6. В одном сообществе может быть неограниченное количество пользователей, блогов, записей
  7. У записи может быть много комментариев. Комментарий это полноценная запись, находящаяся в блоге “комментарии”
  8. У комментария могут быть комментарии
  9. Комментарий может стать полноценной записью, если его добавить или перенести в другой блог
  10. Запись может учавствовать в разных блогах, в том числе и за пределами сообщества, где ее создали
  11. У записей есть мета-данные
  12. У пользователей есть мета-данные с указанием их типа

К сожалению, я еще не до конца разобрался с MySQL Workbench, поэтому комментарии на картинке отсутсвуют. Зато они присутствуют в прилагаемом SQL файле. БД лучше всего проектировать перед написанием кода и только после того, как вы предъявили требования к системе. Изменения в ходе разработки могут нанести серьезный ущерб как временной, так и экономический (как в случае с коммерческими разработками). Конечно же, мы не правильные программисты из Москвы с белоснежными ноутбуками и прочим интерьером, а самые обычные программисты из остальной, более значимой части России, и поэтому оставим пару доработок на будущее, чтобы жизнь медом не казалась. Самые глазастые уже наверно догадались какие.

На модели мы видим сообщества, права, блоги и записи. Примечательно, что запись может участвовать сразу в нескольких блогах и даже в разных сообществах. У записей могут быть дополнительные мета-записи. Тоже самое у пользователей. Сделано это для более мягкого шаблонизирования сайта. Например, можно указать 2 контакта Jabber и 4 livejournal блога и больше ничего.

Начинающие программисты часто ошибаются в проектировании базы данных (толи от лени, толи от незнания). Обратите внимание, что в базе используются как первичные ключи, так и внешние. Это гарантирует целостность данных. Если вы вдруг попытаетесь удалить пользователя, то его записи не будут затеряными в любом случае. Можно или удалить все его записи, или изменить идентификатор пользователя записей на другой. Если у записей есть комментарии, то при удалении записей надо удалить и комментарии.

Изучайте структуру БД. Во второй части мы поговорим о выборе фреймворка и проектировке будущего сайта.

Нет комментариев »

Sun SPARC Station 20

№ 2358. August 21st, 2010,

http://museum.blindage.org/2010/08/sun-sparc-station-20/

Нет комментариев »

Клуб пользователей смартфона Acer E110

№ 2332. August 10th, 2010,
Теги:

По причине покупки уже второго смартфона (себе и жене) начал искать информацию по нему в сети. К сожалению, она немного разрознена и поэтому сделал форум специально посвященный его.

Перейти на сайт «Клуб пользователей смартфона Acer E110».

UPDATE! Сайт перенесен на домен acer-e110.net!

3 комментариев »

Детская мечта с 8-битным звуком

№ 2341. August 8th, 2010,


Видео «Охота на уток».

4 комментариев »

Установка Windows XP в Qemu на домашнем сервере

№ 2329. August 7th, 2010,
Теги: ,

У меня дома есть домашний файловый сервер. Иногда нужно срочно запустить Windows XP и протестить программу, но по очевидным причинам этой ОС нет рядом. Принял решение установить пару виртуалок на этот сервер :)

Процессор Pentium III 735 МГц и 384 МБ ОЗУ это не слишком шустро, но довольно терпимо.
Прочитать полностью …

Нет комментариев »

Предыдущая страница

© Владимир Смагин, 2005-2010 г.

Live long and prosper.