|
|
|
| Поделюсь своим опытом написания форума, сразу отмечу, что данная информация будет полезна только начинающим.
Когда я засел писать свой первый форум, то начал как обычно - с базы данных, вот тут-то и возникла основная проблема: как организовать таблицы, чтобы они правильно взаимодействовали между собой? Предлагаю простейший вариант построения базы данных.
Итак, имеем 4 таблицы: users (содержащую информацию о пользователе), forums (разделы форума), themes (темы) и posts (собственно, сообщения).
Из скриптов (помимо скрипта регистрации, авторизации и т.п.) имеем forum.php (список форумов), themes.php (список тем соответствующего раздела форума), posts.php (соответственно, обсуждение темы).
На странице forum.php названия форумов отображаются в виде ссылок типа themes.php?f_id=xxx, где xxx-номер соответствующего раздела форума, при переходе на страницу themes.php вычисляем значение переменной f_id ($forum_id=$_GET['f_id'];), и делаем запрос в таблицу themes, где айди форума равен $forum_id и последовательно выводим темы в виде ссылок типа posts.php?t_id=yyy где yyy-айди темы. На странице posts.php вычисляем значение переменной t_id, делаем аналогичный запрос в таблицу posts и выводим сообщения.
Основная идея в том, что каждая следующая по иерархии таблица имеет вторичный ключ, указывающий айдишник форума, темы...
P.S.: Расказал только про структуру таблиц и обращения к ним, вроде кроме данной проблемы других возникнуть не должно. | |
|
|
|
|
|
|
|
для: loyk
(26.02.2007 в 16:00)
| | По уровню изложения материала напомнило статью в космополитен, где описывалось как с помощью пилочки для ногтей и маникюрных щипчиков сделать домашнюю сеть. | |
|
|
|
|
|
|
|
для: Loki
(26.02.2007 в 16:38)
| | Какой номер?
подписаться чтоли.... | |
|
|
|
|
|
|
|
для: Trianon
(26.02.2007 в 16:41)
| | Loki,я вижу,ты наверное,из тех людей,первыми в жизни словами которых было не "мама",а "if(!get_magic_quotes_gpc($var)){$var=addslashes($var);"...Не все же такие,многим начинающим и это будет в новинку и очень полезно | |
|
|
|
|
|
|
|
для: Ralph
(26.02.2007 в 17:27)
| | Многим начинающим будет полезен хорошо откомментированный грамотный код и справочник под рукой. Что-то ни одной из областей не встречал чтобы начинающие учили начинающих. А если такое происходит, то на результатах это немедленно сказывается. | |
|
|
|
|
|
|
|
для: Trianon
(26.02.2007 в 16:41)
| | А бывает и наоборот,посмотрит человек такой вот хорошо задокументированный(по мнению автора) и легко понимаемый(опять же по мнению автора) код,а потом пишет где надо и не надо if(preg_match("/^[0-9]+$/i",$digit))
п.с. тем более речь шла не о коде,а об общей структуре,что часто бывает полезно.Так как человек вроде немного язык выучил,хочет что-то написать,а вот как раз о структуре и понятия не имеет.Когда я писал свой первый счетчик онлайн :-) функции то я знал,а принцип даже примерно представить не мог | |
|
|
|
|
|
|
|
для: loyk
(26.02.2007 в 16:00)
| | в картинке структуры баз не хватает стрелочек для связи баз по ключам :)
и надо бы поле user_id добавить | |
|
|
|
|
|
|
|
для: Disable
(26.02.2007 в 17:44)
| | равно как и сами ключи кое-где отсутствуют. | |
|
|
|
|
|
|
|
для: Disable
(26.02.2007 в 17:44)
| | Автор решил обойтись без суррогатного ПК в таблице users, использовав под него поле user напрямую. Что, вобщем-то, допустимо.
Имена таблиц не надписаны - это швах даже для такого cosmo-варианта. | |
|
|
|
|
|
|
|
для: Trianon
(26.02.2007 в 18:07)
| | Могу еще помочь ссылкой. есть книга в PDF формате. Там показано на примере как пишутся форумы, интернет-магазины и т.д. Может кому надо скачивайте.
http://proklondike.com/files/PHP/Kolisnichenko_PHP5(RUS).rar не работает попробуйте другую.
http://www.codingclub.net/index.php?go=Books&file=down&id=175
Предупреждаю если у кого высокоскоростной весит 7,915кб
P.S. сайт не мой и это не реклама. Лазил в инете и нашел. Просто сам сижу и пишу форум в данный момент. Хотя сам почти новичек.
Кстати у меня есть предложения: 1) Сделать на этом форуме если тема решена то на гланой странице форума написано тип решена.
И 2 сделать несколько тем для чайников(новичков), там например, что где скачать купить и так далее или типичные ошибки расписать, ну наверное понятно. | |
|
|
|
|
|
|
|
для: tokmak
(26.02.2007 в 18:54)
| | вот тут еще есть эта книга (иногда можно скачать, когда иностранный траффик не превышен у них)
[url]
http://www.wmate.ru/ebooks/
[/url] | |
|
|
|
|
|
|
|
для: Disable
(26.02.2007 в 20:12)
| | Loki,кстати,именно так я и стал нормальным столяром...Когда пытался что-то узнать у опытных,они или отмахивались,или начинали "понятно" (по их мнению) обьяснять,опуская элементарные и само собой разумеющиеся (для них) детали.И вот как раз у начинающих я этим деталям и учился,потому они еще не успели забыть,как сами на этом обжигались... | |
|
|
|
|
|
|
|
для: Ralph
(26.02.2007 в 20:33)
| | Побольше бы подобной информации.
А то функции вызубрил, приемы вроде тоже идут не плохо.
Часто нужно просто представить что тебе нужно создать, а техника как правило дело наживное.
Другими словами, если продуман информационный дизайн то пол дела сделано.
Книгу Ани Фйо "рентабельный дизайн" считаю классикой для web-программиста, хотя в ней ни строчки кода. | |
|
|
|