Биллинговая система Nodeny

Главная категория => Разработка => Тема начата: Efendy от 07 Февраля 2010, 15:20:45



Название: Dopdata ревизии, соображение по изменению
Отправлено: Efendy от 07 Февраля 2010, 15:20:45
Это информация сугубо для разработчиков модулей NoDeny.

Напоминаю, что в dopdata есть поле "ревизия", которое указывает на актуальный блок данных. Ревизий может быть несколько, актуальной считается имеющая самый большой номер для клиента, причем в заданном темплейте (шаблоне). Для выборки актуальных данных приходится писать не совсем тривиальные sql-запросы. Поэтому я решил слегка переработать концепцию.

Понятие ревизия остается, поскольку вещь очень полезная, не буду повторяться почему. Однако вводятся 2 положительных момента:

в dopdata для конкретного id клиента будет всего одна ревизия для всех шаблонов. Т.е. чтобы получить все актуальные данные можно будет сделать запрос: select * from dopdata where paret_id=xx. Заметьте, что все шаблоны будут иметь один номер ревизии, а не как раньше приходилось делать разные выборки для разных шаблонов.

Почему в запрос не попадут устаревшие данные и куда они вообще пропали? Для того, чтобы устаревшие данные не мешались, для них parent_id станет отрицательным, т.е. id клиента, но с минусом. Вообще эти данные вам врядли понадобятся, к ним будет доступ через админку по моим скриптам. Единственное, что придется сделать dopvalues транзакционной таблицей, поскольку придется юзать транзакции. Старая схема была интересна тем, что была абсолютно корректной в любом месте обновления данных, т.е. застрахована от сбоев при неиспользовании транзакций (сейчас я уже отхожу от этой идеи ибо Mysql уже нормально с ними работает). Но из-за этого труднее работать с конечным результатом. Я решил обменять эти условия местами


Название: Re: Dopdata ревизии, соображение по изменению
Отправлено: elite от 08 Февраля 2010, 13:16:39
+1


Название: Re: Dopdata ревизии, соображение по изменению
Отправлено: elite от 25 Февраля 2010, 12:24:56
а можно это сделать в текущей версии?


Название: Re: Dopdata ревизии, соображение по изменению
Отправлено: Efendy от 25 Февраля 2010, 16:53:27
а можно это сделать в текущей версии?
я уже говорил, что не буду апдейтить текущую версию.

Кстати, новая уже координально отличается от 50й. Как я уже говорил, абсолютно все поля (характеристики объектов (уже нет понятия  клиент, есть объекты - клиенты/роутеры/работники)) задаются через настраиваемые дополнительные. По умолчанию у объекта нет ничего кроме id и группы (таблица users состоит из этих двух полей, ха-ха). Группа задает то, что из себя представляет объект. Он может иметь логин/пароль/счет(а)/имя/трафик/время, а может ничего из вышеперечисленного.



Название: Re: Dopdata ревизии, соображение по изменению
Отправлено: elite от 25 Февраля 2010, 17:04:10
я уже говорил, что не буду апдейтить текущую версию.
а не надо апдейтить, мы сами поковыряемся ))
а то больно неудобно вложенными запросами доставать из допдаты данные )


Название: Re: Dopdata ревизии, соображение по изменению
Отправлено: blackjack от 28 Декабря 2010, 18:00:27
всем привет,
сделал view как на картинке с максимальными ревизиями для поиска по адресу, вюха строится быстро.
Кто нибудь подскажет как выбрать все уникальные parent_id  с номером улицы И/ИЛИ дома И/ИЛИ квартиры?
Чета немогу ничего придумать.


Название: Re: Dopdata ревизии, соображение по изменению
Отправлено: 0xbad0c0d3 от 28 Декабря 2010, 23:45:24
Нипанимать вопроса!