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 :: Прочитано/Не прочитано

 PHP.SU

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


 Страниц (1): [1]   

> Без описания
VestCoastman
Отправлено: 10 Сентября, 2013 - 01:23:40
Post Id



Посетитель


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


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




Занялся написанием статуса тем/категорий на форуме.
Подскажите, как организовать со стороны хранения данных?

Давно писал систему входящих/исходящих сообщений, там все было просто. Если у сообщения пользователя статус 0, то делаем sql апдейт на единичку, если единичка - игнорим.

В голову пока лезет только такая мысля:
1. Проверка прочитанного/непрочитанного топика
Проверяем, имеется ли кука read_topic содержащая id темы и кол-во постов в ней. Если да, название темы делаем тонким, иначе жирным шрифтом.
При заходе в тему, создается кука read_topic, если ее еще нет, а если есть и кол-во сообщений не равно текущему кол-ву сообщений в теме, обновляем значение куки.

Ну а далее с проверками категорий я просто запоролся.
Подумываю о хранении в mysql, но со стороны ресурсов - это вообще не выгодно, но возможно я ошибаюсь и есть хорошее решение.
 
 Top
caballero
Отправлено: 10 Сентября, 2013 - 01:43:12
Post Id


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


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


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




Цитата:
Проверяем, имеется ли кука read_topic содержащая id темы

на хрена тут куки? сессии в PHP для кого придуманы

Цитата:
Подумываю о хранении в mysql, но со стороны ресурсов - это вообще не выгодно, но возможно я ошибаюсь и есть хорошее решение.

Mysql и есть хорошее решение.

Откуда у новичков эти дикие решения. то куки вместо сессий то файлы вместо БД.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
VestCoastman
Отправлено: 10 Сентября, 2013 - 02:15:29
Post Id



Посетитель


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


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




Цитата:
на хрена тут куки? сессии в PHP для кого придуманы

Можно и сессии, со стороны оптимизации этот вопрос меня пока не особо волнует, а волнует сама структура строения

Цитата:
Mysql и есть хорошее решение.

Можно поподробней? Неужели для каждого юзера и темы создавать поле?

Цитата:
Откуда у новичков эти дикие решения. то куки вместо сессий то файлы вместо БД.

Куки вместо сессии - это еще ладно))
А вот файлы вместо бд, ну или include("bloks/bd.php"); // Подключение БиДэ, такой дикости еще не лезло в голову Улыбка
 
 Top
caballero
Отправлено: 10 Сентября, 2013 - 09:52:28
Post Id


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


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


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




Цитата:
со стороны оптимизации этот вопрос меня пока не особо волнует,

это не оптимизация а грамотное применение инструмента разработки.

Цитата:
Можно поподробней? Неужели для каждого юзера и темы создавать поле?

нет, блин для каждого юзера свой сервер с БД.
Ты в курсе что в БД есть не только поля а еще и строки.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
VestCoastman
Отправлено: 10 Сентября, 2013 - 14:06:37
Post Id



Посетитель


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


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




Цитата:
нет, блин для каждого юзера свой сервер с БД.
Ты в курсе что в БД есть не только поля а еще и строки.

Ладно, пошел сервера закупать :/
 
 Top
VestCoastman
Отправлено: 12 Сентября, 2013 - 03:23:45
Post Id



Посетитель


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


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




Сидел, думал, много думал, потом еще подумал и еще, что-то реализовал, но в итоге не пришел к идеальной структуре таблиц в базе.

Сформировалась только такая картина:
При заходе в категорию, создается строка в таблице read_category
с такими данными
id | cid | topics | posts | userid
cid - id прочитанной категории
topics - количество прочитанных тем(по умолчанию ноль). Вставляется значение по умолчанию
posts - количество ответов(по умолчанию ноль). Вставляется значение по умолчанию

При заходе в тему, создается строка в таблице read_topics
с такими данными
id | tid | posts | userid
tid - id прочитанной темы
posts - количество постов в данной теме

id и userid думаю объяснять не надо

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

При просмотре списка тем формируется запрос, который сверяет текущее кол-во постов с постами в таблице read_topics.

Если данные не равны, выводит жирный шрифт, иначе обычный.


Всё вроде бы работает хорошо, но есть 2 проблемы - удаление и перенос(тем и/или постов).

При удалении поста, требуется обновить все поля в таблицах read_category и read_topics где tid = текущей категории поста, а если таких over 9999 строк? Что тогда?

То же самое и с удалением тем, но там надо при обновлении вычитать посты и делать -1 на топике.

А с переносом тем, там вообще провал, если подумать. +4 запроса, если не ошибаюсь.

Может подскажите правильную структуру формирования "Прочитано/Не прочитано"?
По тому что то, что я написал сейчас, немного напоминает мне касету с дешевым порно 90-х годов.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB