От Администрация (wolfschanze)
К Sergei Ko.
Дата 17.05.2007 21:50:59
Рубрики Администрации;

Поговорите с Новиком

--Он, может быть, объяснит технические проблемы
Широко распростирает химия руки свои в дела человеческие

От Hokum
К Администрация (wolfschanze) (17.05.2007 21:50:59)
Дата 17.05.2007 23:00:48

Хоть и не Новик...

...но как специалист по базам, попробую объяснить "на пальцах". Для меня все оно совершенно прозрачно.
Имя рубрики - не более, чем ее "свойство" (property). Движком форума оно не используется. Движок различает рубрики по уникальному ID, который в интерфейсе не отображается.
Максимальное количество рубрик может быть ограничено в десятке мест (размеры полей, типы данных, etc). Чтобы его увеличить, придется перелопатить практически весь код.
В настоящее время все рубрики заняты, свободных не осталось. Добавление новой рубрики возможно только взамен одной из сушествующих.
Удаление рубрики невозможно, т.к. "повиснут" все записи, что на нее ссылаются.
Переименование рубрики в принципе возможно, но ее ID останется тем же. То есть, начиная с какого-то момента, под этим ID пойдут посты с совершенно иным содержанием. Что приведет к полнейшему бардаку в архивах.
Единственная лазейка - использование "расширенного" имени, чтобы все старые посты по-прежнему соответствовали названию рубрики. Пример из прошлого - переименование рубрики "Стендовый моделизм" в "Искусство и творчество". В нашем случае "Евреев и Израиль" можно (теоретически) переименовать в "Ближний Восток" или "Нации и народы", а вот слить с "Локальными конфликтами" не получится при всем желании.
Уф-ф-ф... Вот так или примерно так. Если где накосячил - поправьте, pls.
С уважением,
Роман

От kinetic
К Hokum (17.05.2007 23:00:48)
Дата 17.05.2007 23:43:24

А почему нельзя вот так?

>...но как специалист по базам, попробую объяснить "на пальцах". Для меня все оно совершенно прозрачно.
>Имя рубрики - не более, чем ее "свойство" (property). Движком форума оно не используется. Движок различает рубрики по уникальному ID, который в интерфейсе не отображается.
>Максимальное количество рубрик может быть ограничено в десятке мест (размеры полей, типы данных, etc). Чтобы его увеличить, придется перелопатить практически весь код.
>В настоящее время все рубрики заняты, свободных не осталось. Добавление новой рубрики возможно только взамен одной из сушествующих.
>Удаление рубрики невозможно, т.к. "повиснут" все записи, что на нее ссылаются.
>Переименование рубрики в принципе возможно, но ее ID останется тем же. То есть, начиная с какого-то момента, под этим ID пойдут посты с совершенно иным содержанием. Что приведет к полнейшему бардаку в архивах.

Насколько я понял, есть желание слить рубрику А (ID = X) с рубрикой Б (ID = Y) в рубрику В (ID = X) и создать рубрику Г (ID = Y). Предполагая, что слияние А и Б в В "естественно" (скажем, "Локальные конфликты" + "Евреи" -> "Локальные конфликты"), то оно полностью применимо и к старым данным. Тогда это можно сделать без перелопачивания кода. Нужно перелопатить данные, причем выполнить требуется тривиальную операцию замены одного номера на другой (замена есть простая однозначная функция ID -> ID).

От Hokum
К kinetic (17.05.2007 23:43:24)
Дата 17.05.2007 23:56:02

Re: А почему...

Все так, "но есть нюанс"(с). Сообщение может принадлежать к нескольким рубрикам. Думаю, там не банальные таблицы связей, а битовые маски (кстати, в тип bigint влезает маска как раз на 32 значения - угадал? :-). Которые, конечно, тоже можно поменять, но бодяга будет еще та. В том числе и с тестированием.
Но с этими вопросами действительно лучше к Новику. Я тут так, просто мимо проходил, не смог не встрять :-)))
С уважением,
Роман

От kinetic
К Hokum (17.05.2007 23:56:02)
Дата 18.05.2007 00:06:50

Re: А почему...

>Все так, "но есть нюанс"(с). Сообщение может принадлежать к нескольким рубрикам.

А какая разница? У сообщения есть конечный набор рубрик. Заменяется ID каждой.

> Думаю, там не банальные таблицы связей, а битовые маски

Конкретный способ представления конечного набора значений вобщем-то безразличен.

> но бодяга будет еще та. В том числе и с тестированием.

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

> Я тут так, просто мимо проходил, не смог не встрять :-)))

Да я тоже :-)

От Hokum
К kinetic (18.05.2007 00:06:50)
Дата 18.05.2007 17:25:07

Re: А почему...

>В предложенном способе как раз рабочий код трогать не надо, а миграция данных логически очень простая и отлаживается на раз.

Это как, интересно? Я знаю только один способ - тестовая среда, копия рабочей базы и детальный тест-план. Все остальное - от лукавого. Или Вы предлагаете запускать потенциально (и кинетически :-) опасный скрипт сразу по живым данным, не потренировавшись на кошках? Консоль Вам в руки и backup на шею :-)
Два дня - это еще оптимистично. Я бы на этот проект неделю отвел. А Вы хотите на общественных началах. TANSTAAFL, однако (There Are No Such Things As A Free Lunch - всеми любимый здесь Ханлайн).
С уважением,
Роман

От kinetic
К Hokum (18.05.2007 17:25:07)
Дата 19.05.2007 00:25:39

Re: А почему...

>>В предложенном способе как раз рабочий код трогать не надо, а миграция данных логически очень простая и отлаживается на раз.
>
>Это как, интересно? Я знаю только один способ - тестовая среда, копия рабочей базы и детальный тест-план. Все остальное - от лукавого.

Да ради бога. Хотя.. оно, конечно, by the book, все дела... но есть у меня сомнение, что данный форум именно от лукавого (re "детальный тест-план"). Хотя рад буду убедиться в напрасности соменений.

> Или Вы предлагаете запускать потенциально (и кинетически :-) опасный скрипт сразу по живым данным, не потренировавшись на кошках?

Не обижайте, где ж это я такое предлагал?

>Два дня - это еще оптимистично. Я бы на этот проект неделю отвел.

Да хоть месяц - были бы желающие и доступ к копии данных. Учитывая энергию, которая тратится участниками на дискуссии, которые уничтожаются без архивирования, вопрос свободного времени отнюдь не перед всеми стоит столь же остро, сколь перед уважаемым Новиком.

От Novik
К kinetic (18.05.2007 00:06:50)
Дата 18.05.2007 11:49:26

Re: Угу-угу.

> А какая разница? У сообщения есть конечный набор рубрик. Заменяется ID
> каждой.

Для миллиона с лишним постингов. А потом еще и переиндексировать все
получившееся с нуля - это дня так на два. Я вам раб на плантациях, что-ли?
Полагаете, мне по основной работе нечем заняться?



От kinetic
К Novik (18.05.2007 11:49:26)
Дата 18.05.2007 23:58:57

Если я правильно понял, то...

>> А какая разница? У сообщения есть конечный набор рубрик. Заменяется ID
>> каждой.
>
>Для миллиона с лишним постингов. А потом еще и переиндексировать все
>получившееся с нуля - это дня так на два. Я вам раб на плантациях, что-ли?
>Полагаете, мне по основной работе нечем заняться?

... разговор перешёл из русла "никак нельзя" в "нет времени на пустяки". Так может, если эти пустяки так важны сообществу, оно само пусть и изображает раба? Понадобится, конечно, поболее чем два дня, ну так и спешки никакой нет.

От Novik
К kinetic (18.05.2007 23:58:57)
Дата 19.05.2007 14:12:17

Re: Если я

Приветствую.
>... разговор перешёл из русла "никак нельзя" в "нет времени на пустяки".

В данном случае эти понятия тождественны. Выход мал, работы уйма, есть достаточно большая вероятность совершить ошибку и угробить данные. Да, можно наводить чистоту в гальюне зубной щеткой. Но лично Вы стали бы этим заниматься?

От kinetic
К Novik (19.05.2007 14:12:17)
Дата 19.05.2007 17:49:05

Это я понял и с этим не спорю. Потому и предложил делегировать чистку желающим.

На любых Вам угодных условиях. Правда, в последних сообщениях что-то про лицензирование было - если вся система есть строго коммерческое предприятие, тогда и говорить не о чем.

От Гриша
К kinetic (18.05.2007 23:58:57)
Дата 19.05.2007 02:25:30

Ну тады пусть сообщество пришлет Новику достаточное количетво дензнаков

>>> А какая разница? У сообщения есть конечный набор рубрик. Заменяется ID
>>> каждой.
>>
>>Для миллиона с лишним постингов. А потом еще и переиндексировать все
>>получившееся с нуля - это дня так на два. Я вам раб на плантациях, что-ли?
>>Полагаете, мне по основной работе нечем заняться?
>
>... разговор перешёл из русла "никак нельзя" в "нет времени на пустяки". Так может, если эти пустяки так важны сообществу, оно само пусть и изображает раба? Понадобится, конечно, поболее чем два дня, ну так и спешки никакой нет.

Или, альтернативно, напишет само нужный код. Насколько я помьню, код движка можно лицензировать.

От Novik
К Гриша (19.05.2007 02:25:30)
Дата 19.05.2007 14:15:27

Re: За деньги я этим заниматься не буду.

Приветствую.
Вопрос принципа.

>Насколько я помьню, код движка можно лицензировать.

Исходники нельзя. По крайней мере, соотв. позиция в прайсах конторы отсутствует.

От Novik
К Hokum (17.05.2007 23:00:48)
Дата 17.05.2007 23:07:19

Re: Именно так и есть (-)