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

Форум PHP

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

 

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

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

тема: Как правильно организовать АВАТАРКИ?

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

 
 автор: Valick   (21.08.2011 в 01:15)   письмо автору
 
   для: cheops   (21.08.2011 в 00:48)
 

про компактность я уже сказал, что полностью согласен и даже никогда и не был против
но вот добавив (не сложив не умножив, а действительно пришпандорив тупо спереди и эта операция будет выполняться действительно со строкой а не с числом) префикс из цифр я получу число и я и мой алгоритм будут знать что делать с таким "числом" и как его обрабатывать и самое главное в базе оно будет храниться как число

  Ответить  
 
 автор: cheops   (21.08.2011 в 00:48)   письмо автору
 
   для: Valick   (21.08.2011 в 00:31)
 

>с чего вы взяли что я собрался что-то на что-то делить?
>и уж абсолютно мне непонятно почему вы заняли позицию, что в десятичной системе нужно без
>вариантов делить? :)
Потому что взятие остатка из конца числа или из начала суть эквивалентно делению или взятия остатка от деления, какую систему вы используете при этом не имеет значения.
Не имеет значения также какое у вас основание, числа в компьютере представляются все-равно двоичной системой и эта система позиционная и позиции отсчитываются не с начала, а с конца.

Если вы вводите префикс, вы уже имеете дело со строкой, так как манипулируете позициями, а не числовыми значениями. Префикс к тому же убивает все числовые механизмы генераторов новых значений - они превращаются в строковые. Путь к файлу всегда строка, чем больше символов вы используете в строке, тем короче у вас названия, тем быстрее они ищутся на диске, тем меньше трафика они потребляют при выводе. Еще раз повторю, что для небольших систем это не имеет значения.

>и уж абсолютно мне непонятно почему вы заняли позицию, что в десятичной системе нужно без
>вариантов делить? :)
Ну отнимайте, складывайте или умножайте... если это число, с ним не так много операций можно провернуть. Если это строка, читайте выше - есть более экономные способы работы со строками, чем больше символов используется в строке, тем более компактным способом можно передать больше информации.

  Ответить  
 
 автор: cheops   (21.08.2011 в 00:48)   письмо автору
 
   для: Valick   (21.08.2011 в 00:31)
 

>с чего вы взяли что я собрался что-то на что-то делить?
>и уж абсолютно мне непонятно почему вы заняли позицию, что в десятичной системе нужно без
>вариантов делить? :)
Потому что взятие остатка из конца числа или из начала суть эквивалентно делению или взятия остатка от деления, какую систему вы используете при этом не имеет значения.
Не имеет значения также какое у вас основание, числа в компьютере представляются все-равно двоичной системой и эта система позиционная и позиции отсчитываются не с начала, а с конца.

Если вы вводите префикс, вы уже имеете дело со строкой, так как манипулируете позициями, а не числовыми значениями. Префикс к тому же убивает все числовые механизмы генераторов новых значений - они превращаются в строковые. Путь к файлу всегда строка, чем больше символов вы используете в строке, тем короче у вас названия, тем быстрее они ищутся на диске, тем меньше трафика они потребляют при выводе. Еще раз повторю, что для небольших систем это не имеет значения.

>и уж абсолютно мне непонятно почему вы заняли позицию, что в десятичной системе нужно без
>вариантов делить? :)
Ну отнимайте, складывайте или умножайте... если это число, с ним не так много операций можно провернуть. Если это строка, читайте выше - есть более экономные способы работы со строками, чем больше символов используется в строке, тем более компактным способом можно передать больше информации.

  Ответить  
 
 автор: Valick   (21.08.2011 в 00:36)   письмо автору
 
   для: Axxil   (21.08.2011 в 00:30)
 

:) я уже второй год пишу когда время есть игру морской бой... абсолютно некоммерческий проект для детей
тут первый вариант движка "на массивах", но привязка к сессии не устраивала, а гонять массив тупо туда сюда в БД просто глупо
на "новогодних каникулах" переписал все с использованием БД, абсолютно другой алгоритм получился

  Ответить  
 
 автор: Valick   (21.08.2011 в 00:31)   письмо автору
 
   для: cheops   (21.08.2011 в 00:14)
 

К строке вы можете префикс от 01 до 28 добавить без проблем
я и к числу могу добавить префикс без проблем, и точно так же буду знать что первые два три символа это префикс, с чего вы взяли что я собрался что-то на что-то делить? и почему вы считаете что делить можно только в десятичной системе? :) и уж абсолютно мне непонятно почему вы заняли позицию, что в десятичной системе нужно без вариантов делить? :)

  Ответить  
 
 автор: Axxil   (21.08.2011 в 00:30)   письмо автору
 
   для: Valick   (21.08.2011 в 00:06)
 

>> я не спроектировал ни одной системы, я не написал ни одного сайта, я вообще не программист...

Спасибо за честность.

  Ответить  
 
 автор: cheops   (21.08.2011 в 00:14)   письмо автору
 
   для: Valick   (21.08.2011 в 00:00)
 

К строке вы можете префикс от 01 до 28 добавить без проблем, потом появится сервера с 29 по 54 - просто изменится префикс, к числу вы этого уже не добавите, если вы до этого просто делили на 28 число, то с вводом новых серверов нельзя будет делить на 54, так как для вычисления позиции старых файлов вам нужно делить на 28. Это можно было бы избежать, если бы у вас был строковый хэш, но так как у вас числовой хэш - он увеличивается равномерно и суффикс или префикс в него уже не упакуешь.

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

PS Если бы не было преимуществ - никто бы такие хэши не использовал бы, но их используют и довольно интенсивно. В MySQL, конечно, редко встречается, как правило, под MySQL разворачивают не очень большие базы, MyISAM на больших объемах захлебывается, а InnoDB не сильно шустрый и крайне своеобразный.

  Ответить  
 
 автор: Valick   (21.08.2011 в 00:06)   письмо автору
 
   для: Axxil   (20.08.2011 в 23:54)
 

я не спроектировал ни одной системы, я не написал ни одного сайта, я вообще не программист...
(хотя мог бы сказать, что запрограммировал и гугл и яндекс и рамблер и яху вдоль и поперек)
вы полагаете я не имею права с вами спорить? и тем более учить вас уму разуму? :)
с удовольствием послушаю что написали вы и тем более то как вы собираетесь это доказать ;)
___
поверьте, когда заканчиваются аргументы.. не все средства хороши)

  Ответить  
 
 автор: Valick   (21.08.2011 в 00:00)   письмо автору
 
   для: cheops   (20.08.2011 в 23:16)
 

чем больше символов вы задействуете на одном месте, тем короче
с этим я и не спорил (хотя выигрывая в длине, проигрываем в типе поля, со всеми вытекающими)
и это я как раз отлично понимаю
я про равномерное распределение на 28 (на 37, на 53, на 82) серверов в чем отличие 10-ной и 16-ной систем? каким боком тут кратность поможет?

  Ответить  
 
 автор: Axxil   (20.08.2011 в 23:54)   письмо автору
 
   для: Valick   (20.08.2011 в 21:51)
 

Простой вопрос разрешите? Какая самая большая система, которую Вы проектировали?

  Ответить  

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

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

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