отдельный счетчик для определенного типа нод.

Главные вкладки

Комментарии

Аватар пользователя klim klim 20 апреля 2009 в 17:03

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

Аватар пользователя kosilko kosilko 20 апреля 2009 в 17:10

"klim" wrote:
ваш запрос считает кол-во материалов определенного типа

ну дык, каков был вопрос таков и даден был ответ Smile

"klim" wrote:
надо для каждой ноды сделать уникальный номер. чтобы при возможном удалении ноды, счетчик не сбивался, как будет с вашим примером.

о_О
во спасиба .....

Аватар пользователя klim klim 20 апреля 2009 в 17:23

"jeehadina" wrote:
что ж это за счетчик который, несуществующие ноды считает?

где написано что надо считать несуществующие ноды? глупости какие-то пишите.

"kosilko" wrote:

не за что, обращайтесь.

у материала node есть атрибут nid (node id) это счетчик, уникальный, инкремент. если убить ноду, то ее id никто не займет, это очевидно.
использовать имеющийся nid не разумно, т.к. на сайте куча+тележка разных типов материалов, которые интенсивно добавляются. в итоге получится сильный разнобой в последовательности.

Аватар пользователя klim klim 20 апреля 2009 в 20:01

"kosilko" wrote:
вы уж разберитесь как нибудь сами, если людей слушать не умеете

умею, ваш пример я разобрал, извините, но он действительно не подходит в данной ситуации.

Аватар пользователя elia elia 20 апреля 2009 в 23:13

"klim" wrote:
у материала node есть атрибут nid (node id) это счетчик, уникальный, инкремент. если убить ноду, то ее id никто не займет, это очевидно.
использовать имеющийся nid не разумно, т.к. на сайте куча+тележка разных типов материалов, которые интенсивно добавляются. в итоге получится сильный разнобой в последовательности.

Рециркуляция id? Не надо так делать. Это неправильно как для сайта (если посетитель открывает убитую ноду, то он должен видеть, что она убита, а не получать другой материал), так и для SQL-сервера. В общем "померла, так померла".
Не надо так делать.

Аватар пользователя klim klim 21 апреля 2009 в 7:01

"elia" wrote:
Рециркуляция id? Не надо так делать. Это неправильно как для сайта (если посетитель открывает убитую ноду, то он должен видеть, что она убита, а не получать другой материал), так и для SQL-сервера. В общем "померла, так померла".
Не надо так делать.

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

вроде задача-то и ежу понятна.

Аватар пользователя klim klim 21 апреля 2009 в 11:33

1. создать счетчик - аналог nid
2. который не сквозной как nid, а относится только к определенному типу контента

какой пункт не понятен? будем пытаться объяснить более детально.

Аватар пользователя klim klim 22 апреля 2009 в 7:38

написал модуль mod_nodeapi, обрабатывающий событие insert.
берет из базы максимальный номер и добавляет к нету 1.
затем вставляет в эту таблицу nid и получившийся выше номер.

ну и разумно написать удаление записи в событии delete

Аватар пользователя elia elia 22 апреля 2009 в 22:54

"klim" wrote:
написал модуль mod_nodeapi, обрабатывающий событие insert.
берет из базы максимальный номер и добавляет к нету 1.
затем вставляет в эту таблицу nid и получившийся выше номер.

ну и разумно написать удаление записи в событии delete


Ну так получится еще одна "дырявая" последовательность в довесок к имеющейся последовательности nid. А для чего нужны эти последовательности?

Аватар пользователя klim klim 23 апреля 2009 в 9:24

пробелы в добавленной последовательности, будут крайне редки.
а если использовать счетчик nid, то разброс будет на несколько порядков больше.