Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Самопис для форума [13]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (14): В начало « ... 6 7 8 9 10 11 12 [13] 14 »   

> Без описания
Мелкий Супермодератор
Отправлено: 30 Июня, 2015 - 11:52:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




DelphinPRO пишет:
Как вам запросик для получения корневых форумов?

Кошмар. Я серьёзно. Это использовать категорически нельзя.
Даже для тяжёлого OLAP весьма жуткий план, а для OLTP самоубийственен.


-----
PostgreSQL DBA
 
 Top
DelphinPRO
Отправлено: 30 Июня, 2015 - 12:39:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Я понимаю, что кошмар. SQL - мое слабое место.
А как еще получить количество всех вложеных тем/постов?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Мелкий Супермодератор
Отправлено: 30 Июня, 2015 - 13:04:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Данные это горячие, нужны часто - потому на лету их считать вообще не вариант.
Нужно обновлять счётчик при записи.
Быстро, зато с риском в итоге разойтись - делать +1 или -1
Медленнее, но точнее - пересчитывать целиком
Быстрый и довольно точный гибрид - +-1, периодически пересчитывать чистовые данные.
Можно обойтись только силами БД. Тут нужно мнение архитектора, где будет размещена логика. Я, честно говоря, уже не помню, какие начальные цели обрисовывал DeepVarvar


-----
PostgreSQL DBA
 
 Top
DelphinPRO
Отправлено: 30 Июня, 2015 - 13:52:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




т.е. либо в таблицу форумов добавить поле count_posts и изменять его при добавлении/удалении постов во всех подфорумах, либо добавить поле forum_id в таблицу постов, которое будет изменяться только при перемещении постов (объединении/разделении тем). Но во втором случае все равно будет подзапрос

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2.     f.id,
  3.     f.sort,
  4.     f.title,
  5.     f.description,
  6.     (
  7.         SELECT count(p.id)
  8.         FROM forum_posts p
  9.         WHERE p.forum_id = f.id
  10.     ) AS count_posts
  11. FROM forum_forums f
  12. ORDER BY f.sort


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Мелкий Супермодератор
Отправлено: 30 Июня, 2015 - 14:44:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




DelphinPRO пишет:
в таблицу форумов добавить поле count_posts и изменять его при добавлении/удалении постов во всех подфорумах

Именно.
При том, понадобится ещё иерархическое обновление:
счётчики нужны в таблице форумов, в таблице подфорумов и счётчик ответов в таблице тем.
При написании ответа (а так же удалении и перемещении) надо обновить счётчик постов в теме, счётчик постов в подфоруме, счётчик постов в таблице форумов.


-----
PostgreSQL DBA
 
 Top
MiksIr
Отправлено: 30 Июня, 2015 - 14:55:51
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


и счетчик постов в таблице пользователей ;)

На самом деле, если все это нормально закапсулировано - абсолютно пофиг как это будет сделано "сейчас".

Я последнее время склоняюсь к тому, что стоит меньше делать денормализации в базе и переносить ее на кеш прослойку.


-----
self-banned
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Июня, 2015 - 15:01:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




DelphinPRO пишет:
в таблицу форумов добавить поле count_posts
Оно там было, только, я удалил на сейчас лишние поля.
Так еще и сам забыл и психанул и тоже такой запрос написал как у дельфина ))
Надо будет пофиксить.
(Добавление)
MiksIr пишет:
и счетчик постов в таблице пользователей ;)
Лучше сделать отдельную forum_users и туда писать, т.к. пользак может быть удален, а посты остаться, может он что полезное писал.
 
 Top
DelphinPRO
Отправлено: 30 Июня, 2015 - 15:27:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




DeepVarvar пишет:
т.к. пользак может быть удален

Из таблицы удален? Зачем? Стандартно - флаг "deleted" и вся инфа останется для внутренних нужд.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Июня, 2015 - 16:09:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Флаг это в статусах, там есть поле статус.
Ну и если думать глобальнее, то форум можно рассматривать как модуль, тогда все что касается личных настроек пользака на форуме и вот этих вот счетчиков (посты, шкор, подпись) -- всетаки лучше закинуть в отдельную таблицу.
 
 Top
Viper
Отправлено: 30 Июня, 2015 - 18:02:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




DelphinPRO пишет:
Какой-нибудь облачный баг-трекер заюзать.
зачем? github'ых issues не хватает?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Июня, 2015 - 18:09:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Я тоже про иссуйки подумал. Там же и типы можно выбирать: предложение, баг...
 
 Top
Viper
Отправлено: 30 Июня, 2015 - 19:06:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Вот пару больших проектов на гитхабе https://github.com/piwik/piwik/issues, https://github.com/videojs/video.js/issues.
Понажимайте milestones, labels. Все автоматизированно(ну кроме тестов) вплоть до релизов.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DelphinPRO
Отправлено: 30 Июня, 2015 - 20:58:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Нормальный стек для фронтенда настроим? gulp, bower, sass, etc...


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Июня, 2015 - 21:25:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Ну допустим.
Я знаю ты любишь.
А если тебя не будет в момент когда надо внести правки?
Я вот например с этими грунтами-гульфиками-сасами-лесам и никогда не работал.
Ну да, будет повод разобраться.

Это я все к чему -- ты перечислил все в куче как выбор?
А что именно ты хочешь воткнуть?

(Добавление)


Добавил табличку форумных пользаков.
Добавил поле счетчика постов в топике.
Привел к общему виду именование некоторых других полей в таблицах.
Пофиксил багу в расчете пагинации.
Поправил хелперы-модельки под новые запросы.

Дапм БД обновлён.
 
 Top
armancho7777777 Супермодератор
Отправлено: 30 Июня, 2015 - 22:41:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Было-бы не плохо, если бы вместо textarea был ckeditor с возможностью вставки кода, который подсвечивается тут же и можно редактировать с автокомплитом ))
Например вот плагин codesnippet:
http://sdk[dot]ckeditor[dot]com/samples/codesnippet[dot]html
Только в нем вызывается окно с кодом.
Вот к нему и прикрутить codemirror.
Будет и подсветка, и форматирование, и автокомплит.
 
 Top
Страниц (14): В начало « ... 6 7 8 9 10 11 12 [13] 14 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Колонка администратора »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB