![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Чучмек |
|
||||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Восстанавливаем часть массива users, соответствующую выбранной пирамиде
Получим, например для пирамиды с индексом вершины 4
Далее, если уж так необходимо
Это сообщение отредактировал(а) Чучмек - 5.8.2012, 17:31 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||||
|
|||||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
А как вы при удалении собираетесь просматривать историю? А если не удалять, то в чем разница-то? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
Еще момент если есть скажем пользователи в 4 уровне
Array ( [1] => xxx [2] => xxx [3] => xxx [4] => xxx [5] => xxx [6] => xxx [7] => пусто для новых [8] => пусто для новых ) админ может деактивировать юзера скажем 4 и будет Array ( [1] => xxx [2] => xxx [3] => xxx [4] => пусто для новых [5] => xxx [6] => xxx [7] => пусто для новых [8] => пусто для новых ) но по заданию нужно в любом случае поместить пустые ячейки в конец. Array ( [1] => xxx [2] => xxx [3] => xxx [4] => xxx [5] => xxx [6] => пусто для новых [7] => пусто для новых [8] => пусто для новых ) тоесть порядковые номера немного собьются и походу в любом случае придется перезаписывать пол базы. |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
В конец чего? Т.е. подписанный под одного человека пользователь резко переместится под другого? Ну не бред ли? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
что входит в историю? достаточно ли для истории просто уметь строить набор пирамид в хронологическом порядке? и вообще, какие операции с пирамидами и их элементами должны быть предусмотрены? из длинного разговора выклевываются некие удаления/перемещения пользователей, но всё это пока очень мутно. nepster, Чучмек, вы уже написали немало кода (мне не очень понятного концептуально), однако один пытается решить задачу, про которую ТС говорит пока задача не будет поставлена конкретно и полностью, все эти разговоры, куски кода и структуры базы имхо лишены смысла. пока в некоторых местах разговор о задаче имеет противоречия (например на которые указывал Fortop). в постановку также надо добавить предполагаемые объемы обрабатываемых данных. |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Придется перезаписывать данные пользователей одной пирамиды Пускай 6000000 пользователей и 4 уровня в пирамиде. Есть разница между дополнительным индексированным полем в таблице на 6*10^6 и таблицей из двух полей 4*10^5 ???
+ Это сообщение отредактировал(а) Чучмек - 6.8.2012, 10:59 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
||||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Или я что-то упускаю из виду, или у вас число топов = N/2 (где N - общее число узлов/пользователей в структуре) У вас 4 уровня для каждого конкретного топа. Но кто сказал что 2,3,4й уровни не могут быть топами в свою очередь для кого-то другого? Т.е. для 6000000 пользователей у вас будет 3000000 топов. Вот и вся ваша экономия. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
При равномерном(относительно равномерном) заполнении, активные топы(верхушки еще не заполненных/не разделенных пирамид)будут находится примерно на одном уровне дерева. В двоичном дереве каждый последующий уровень содержит элементов столько же, сколько все предыдущие. Число уровней в tops будет на n(число уровней в пирамиде) меньше чем число уровней в users Отсюда для n=4 разница в 16 раз. Конечно это крайний случай. Другая крайность - всегда заполняется ТОЛЬКО ОДНА из вновь образующихся пирамид. Тогда count(tops)=count(users) - 2^n Это сообщение отредактировал(а) Чучмек - 6.8.2012, 13:09 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Кроме того в tops можно хранить информацию не имеющую отношения к конкретному пользователю
Время создания/заполнения пирамиды, историю изменения ее состава. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
на днях реализую пол задания и все вылажу, для дальнейших дискуссий. Тема интересная =)
По поводу дерева. тут идет как: 1 уровень - это 1 пользователь 2 уровень - это 3 пользователя 3 уровень - это 9 пользователей 4 уровень - это 27 пользователей Всего в пирамиде 40 человек. Как только пирамида полностью заполняется, тоесть в ней стоят 40 человек, она делится еще на 3 пирамиды. Сама же получает статус 0 и существует только для истории. 1,2 и 3 уровень они всегда заполнены. На самом первом этапе в самой 1 пирамиде эти 13 человек, как бы спонсоры проекта. Для приглашения существует только 4 уровень. Если 1 пользователь на 1 уровне пригласит кого-то, то приглашенный попадает на 4 уровень, любой пользователь пирамиды кого-то приглашает, то он попадает на 4 уровень. Тоесть тут нет как бы порядка вложенности и иерархии. Эта иерархия показана только в дизайне, не более. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
||||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
нет, к примеру нумерация ячеек идет по порядку и при делении первая треть попадает в 1 пирамиду, вторая треть во вторую и третья треть в третью пирамиду.
|
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
и при этом нужна история, кто в какой когда был?
|
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
все верно
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |