Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Очень простой форум

Сообщения:  [1-10]    [11-20]   [21-30]  [31-38] 

 
 автор: Loki   (23.04.2005 в 21:37)   письмо автору
 
   для: cheops   (05.04.2005 в 11:25)
 

Переехал сюда
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3603&page=1

   
 
 автор: cheops   (05.04.2005 в 11:25)   письмо автору
 
   для: Loki   (05.04.2005 в 08:59)
 

Да, есть такое дело, спасибо - поправили. Дело в том, что для установки используется Web-инсталлятор и существует большой соблазн не обновлять forum.sql, хотя не дело, конечно, его тоже следует включить в цикл тестирования.

   
 
 автор: Loki   (05.04.2005 в 08:59)   письмо автору
 
   для: cheops   (05.04.2005 в 00:53)
 

Действительно старая...
Хотя версия у меня последняя (2.1.4), но файл forum.sql создает такую таблицу:

CREATE TABLE themes (
  id_theme int(11) NOT NULL auto_increment,
  name tinytext NOT NULL,
  author tinytext NOT NULL,
  id_author int(6) NOT NULL default '0',
  hide enum('show','hide','lock') NOT NULL default 'show',
  time datetime NOT NULL default '0000-00-00 00:00:00',
  id_forum int(2) NOT NULL default '0',
  PRIMARY KEY  (id_theme),
  FULLTEXT KEY search (name,author)
) TYPE=MyISAM;

Проверьте что у вас выложено в архиве...
Тото у нас какой-то странный диалог получался:))

   
 
 автор: cheops   (05.04.2005 в 00:53)   письмо автору
 
   для: Loki   (05.04.2005 в 00:21)
 

Возможно у вас под рукой старый вариант таблицы, вот таблица themes, которая сейчас используется на форуме
CREATE TABLE themes (
  id_theme int(11) NOT NULL auto_increment,
  name tinytext NOT NULL,
  author tinytext NOT NULL,
  id_author int(6) NOT NULL default '0',
  last_author tinytext NOT NULL,
  id_last_author int(6) NOT NULL default '0',
  hide enum('show','hide','lock') NOT NULL default 'show',
  time datetime NOT NULL default '0000-00-00 00:00:00',
  id_forum int(2) NOT NULL default '0',
  PRIMARY KEY  (id_theme),
  FULLTEXT KEY search (name,author)
) TYPE=MyISAM;

Автор темы хранится в author, а последний ответивший в last_author, соотвествующих первичные ключи тоже дублируются, так как они нужны для ссылок.

   
 
 автор: Loki   (05.04.2005 в 00:21)   письмо автору
 
   для: cheops   (05.04.2005 в 00:14)
 

>А нет, это тоже дублируется - в таблице themes (темы) имеется поле для автора >темы и последнего ответившего посетителя - это поле обновляется при каждом >ответе.
Хе... Дублируется только id автора, а чтобы узнать его имя все равно надо вызывать таблицу authors, так что неправда ваша:)
Но тем не менее, спасибо за разъяснения, а то я в очередной раз собирался "упростить":)

   
 
 автор: cheops   (05.04.2005 в 00:14)   письмо автору
 
   для: Loki   (04.04.2005 в 10:06)
 

>Я поэтому и задал вопрос. Ведь многотабличного запроса вам в
>этом случае избежать не удается (чтобы узнать автора и дату
>последнего ответа надо обращаться к таблице posts).
А нет, это тоже дублируется - в таблице themes (темы) имеется поле для автора темы и последнего ответившего посетителя - это поле обновляется при каждом ответе.
>Кроме того, вы так и не объяснили для чего используется дата
>создания темы?
Эта дата обновляется при каждом ответе. Т.е. в этом поле хранится дата последнего изменения темы, и оно используется при сортировке. Это позволяет активным темам оставаться "на плаву". Вот как этой, не смотря на то, что она начата в прошлом месяце, постоянное обновление поля даты приводит к тому, что она всё-время на первой странице :)

   
 
 автор: Loki   (04.04.2005 в 23:57)   письмо автору
 
   для: Loki   (04.04.2005 в 10:06)
 

cheops, вы развеете мои тягостные сомнения или предпочтете оставить меня в счастливом неведеньи?:)

   
 
 автор: Loki   (04.04.2005 в 10:06)   письмо автору
 
   для: cheops   (04.04.2005 в 09:42)
 

Я поэтому и задал вопрос. Ведь многотабличного запроса вам в этом случае избежать не удается (чтобы узнать автора и дату последнего ответа надо обращаться к таблице posts).
Кроме того, вы так и не объяснили для чего используется дата создания темы?

   
 
 автор: cheops   (04.04.2005 в 09:42)   письмо автору
 
   для: Loki   (03.04.2005 в 23:29)
 

Дублирование вызвано вот чем: скорость. Нужно было всеми средствами избежать многотабличного запроса (выборки из posts и themes) при формировании списка тем и дерева ответов. Ведь если оставить в themes и authors только первичный ключ id_author (из таблицы authors), нам придётся каждый раз формировать двухтабличные запросы, а они всегда медленнее однотабличных.

PS Авторитетов следует слушать всегда очень осторожно :))) они бывают спать хотят, да и вообще у них перед глазами только кусочек задачи, а не вся картина в целом. В такой ситуации человек домысливает собирая из сознания свои текущие задачи...

   
 
 автор: Loki   (03.04.2005 в 23:29)   письмо автору
 
   для: cheops   (03.04.2005 в 21:49)
 

Врядли я до конца понял вашу мысль, но попробую переделать - неплохая будет практика.
Как человек не доверяющий авторитеатм (до сих пор не могу забыть как прокололся послушав вас про модернизацию таблицы ip в счетчике:), постараюсь подойти к вопросу критически. У меня перед глазами таблицы liteforum. Меня интересуют две таблицы: posts и themes.
На мой взгляд, таблица themes излишне дублирует таблицу posts:
author и id_author - не нужны, так как автор первого сообщения и есть искомый, а к таблице posts все равно надо делать запрос чтобы определить автора последного сообщения.
hide - на мой взгляд не нужна, так как сокрытие первого сообщения и должно быть сокрытием темы (но это спорный вопрос)
time - вообще не понял где используется.
Прокомментируйте пожалуйста цели создания этих строк, пока я снова не пошел своим путем:)

   

Сообщения:  [1-10]    [11-20]   [21-30]  [31-38] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования