![]() |
|
|
![]()
|
|
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
Это я просто где-то че-то неучел, сонный был когда писал. |
|||
|
||||
| Cepera |
|
|||
![]() PHPexp ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2146 Регистрация: 25.3.2002 Где: Russia, Samara Репутация: нет Всего: 7 |
надо, надо, поддерживаю Вита
-------------------- I know it is heavy for reading, but I know you will read it anyway... |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
Так никто не спорит, что надо это или нет |
|||
|
||||
| Cepera |
|
|||
![]() PHPexp ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2146 Регистрация: 25.3.2002 Где: Russia, Samara Репутация: нет Всего: 7 |
доп. таблица не поможет?
-------------------- I know it is heavy for reading, but I know you will read it anyway... |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
поможет, реализовать тоже совершенно не проблема через базу, но у меня другая реализация |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 10 Всего: 207 |
Админ, ты меня не убедишь, что файлы работают быстрее, чем база данных, причём база данных будет обгонять именно на больших объёмах инфы. Этот вопрос собственно был однозначно решён ещё в начале 70 годов с созданием DB/2. По поводу отдельных файлов - так ты просто используешь файловую систему для индексации - опять же работать будет хорошо если файлов 1000, а если например 10000 то открытие отдельного файла (особенно в конце каталога) будет идти на несколько порядков медленнее, чем на хорошо проиндексированной таблице, кроме того в файловой системе нет нормальных средств поддержания целостности данных и их валидации. Да и ещё одно преимущество - вот я написал этот топик - для его реализации в базе данных нужно было написать 2 строчки - вызов квери типа (ну я конечно приближённо, уж не знаю структуры):
Update Topics Set Viewed=True Where UserName='Vit' А с текущей логикой, как ты сам признался, это сделать не так просто, так чем же файловая структура лучше? Но собственно дело не в этом, мне в общем то всё равно как устроен движок, а в том, что с существующей системой имеются следующие глюки: 1) Отметить всё как прочитанное не работает 2) Твои собственные ответы в топик считаются не прочитанными 3) Перенесенные темы делают не прочитанными оба раздела - и тот в который перенесли и тот из которого перенесли, причём оба остаются не прочитанными до тех пор пока не появятся новые прочитанные топики, иначе никак - сколько их не смотри они остаются не прочитанными PS. А вообще идея хранить прочитанность топиков не в куках, а связанными с логином мне очень нравится - очень удобно - всё синхронизированно когда заходишь с дома и с работы, а так же если 2 пользователя работают с одним компом (как я сейчас вместе с ещё одним очень активным форумчанином -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| dr.ZmeY |
|
|||
|
Политолог ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3892 Регистрация: 26.3.2002 Где: ..::STALINGRAD::. . Репутация: нет Всего: 60 |
или форумчанкой? ладно - это оффтоп, а так я тоже считаю лучшим решением - использование БД... |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
А я тебя не убеждаю, потому, что я себя даже толком убедить не могу У каждого способа есть свои преимущества и недостатки. Как будет время переделаю все же на базу данных. |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 1 Всего: 154 |
Мне в нынешней ситуации все же "файловый способ" более предпочтительней....
-------------------- |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 10 Всего: 207 |
Нет, админ, не совсем так. Файл осью ищется тоже как в базе данных - по индексу оформленному в виде таблицы распределения файлов, индек этот, в отличие от баз данных не бинарный, поэтому при нарастании количества файлов открытие каждого файла будет становится дольше не в арифметической, а в геометрической прогресии. Обычная кверя типа Select * From ViewedTopics Where User='Vit' как раз и соответствует твоему файлу, только чтение этого взятого DataSet даже Record-by-record будет быстрее чем чтение текстового файла построчно, так как читается прямым доступом (все записи имеют одинаковую длину) и есть возможности сделать подзапрос на созданом View - который будет работать уже на порядки быстрее, чем построчное чтение файла. По нормальному это делается примерно так - на каждого пользователя ты делаешь не файл а постоянное View на таблицу. И далее кверишь это View. Я не знаю может быть скорость работы с базами тебе кажеться маленькой из-за тормозов MySQL - я работаю на MS SQL Server - таблица размером в 50 гигабайт с десятками миллионов записей, но с правильно расставленными ключами позволяет выбрать 1000 нужных записей примерно за 5-10 миллисекунд при парралельном трафике в 50-100 кверей в секунду. Я не верю что текстовый файл будет работать быстрее. Впрочем, ещё раз повторюсь - это в общем-то не моё дело, я собственно о том, что очень хотелось бы иметь эти глюки исправленными. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
Вот здесь я и просчитался |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
"Отметить все, как прочитанное" - я все равно не понимаю, как реализовать. Есть таблицы разные.
Где отмечать, что все темы прочитаны? Видимо, придеться остаться без фичи: "Отметить все, как прочитанное". |
|||
|
||||
| MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: нет Всего: 32 |
может посмотреть, как оно в YaBB сделанно?
-------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
имхо, там ниче нового нет. |
|||
|
||||
| dr.ZmeY |
|
|||
|
Политолог ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3892 Регистрация: 26.3.2002 Где: ..::STALINGRAD::. . Репутация: нет Всего: 60 |
А разьве в Ikonboard этой хрени изначально небыло?
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Обсуждение форума | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |