Сергей Рудюк 2 ноября 2009

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

Слайд-шоу может выводиться в режиме слайд-шоу или переключаться в режим фотогаллереи.

При вставке фотографий, они автоматически масштабируются.

02.11.09, 23:37

Сергей Рудюк 2 ноября 2009

Мы создали новую компоненту "Облако тегов" для системы Корпорация 2. С помощью этой компоненты, можно создавать быстро облака тегов.

По аналогии, как это реализовано на сайте Спортлайф: http://sportlife.net.ua

02.11.09, 23:36

Сергей Рудюк 2 ноября 2009

В системе Корпорация 2 реализован механизм ЧПУ. Теперь, динамические ссылки выглядят так же, как статические интернет-страницы. Это способствует лучшей индексации сайтов поисковыми системами.

02.11.09, 23:35

Сергей Рудюк 2 ноября 2009

Теперь, при возникновении ошибки 404 не выдается сообщение Apache или nginx о том, что отсутствует страница, а корректно возвращается заголовок 404 ошибки и для пользователей выводится карта сайта, чтоб они могли быстро найти интересующую их информацию.

02.11.09, 23:35

Сергей Рудюк 2 ноября 2009

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

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

02.11.09, 23:34

Сергей Рудюк 2 ноября 2009

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

Сегодня, мы уже разработали методологию для работы с базами данных на много-терабайт. Эту технологию постепенно мы внедряем в жизнь в нашем сервисе Корпорация 2.

Нужно признать, что такое не возможно было реализовать на базе данных Firebird. Когда в 2007 году мы тестировали программные решения на Firebird, то столкнулись с тем, что в нем гига-байтные базы данных работают достаточно медленно, т.к. там отсутствовали те механизмы, которые есть в Postgresql для работы с большим количеством данных. На практике, наши базы данных в Firebird не превышали 10 Гб в тестовом режиме, а в реальном, составляли только около 1 Гб.

В Postgresql мы уже сегодня имеем реальный проект, в котором база данных достигла 46 Гб. И знаем, что без проблем можем достигнуть и большего объема!

02.11.09, 23:33

Сергей Рудюк 2 ноября 2009

В процессе работы с системой, мы пришли к такой схеме определения прав:

Различаем 2 глобальные ситуации:

1. Ни одной записи в правах нет.

2. Есть права.

Теперь, что получаем:

1.а. Если я супер админ, то получаю все права ко всем сайтам

1.б. Если я админ *, то я получаю права к тем сайтам, которые перечислены в пользователях.

1.в. Остальные пользователи - только просмотр.

2. а. Если я супер-админ, то я вижу все и могу менять все.

2. б. Если я админ, то я могу изменять то, что написано в правах.

02.11.09, 23:33

Сергей Рудюк 2 ноября 2009

При работе в Postgresql системой Корпорация 2 формируются пользовательские переменные окружения. Поэтому, в конфигурационном файле postgresql.conf должна быть прописана строчка:

custom_variable_classes = 'usrvar'

Системой Корпорация 2, устанавливаются такие переменные окружения:

usrvar.myuserid='; # id пользователя

usrvar.myusername='; # Имя пользователя

usrvar.myroleid='; # id пользователя

usrvar.myrolename='; # Имя прав

usrvar.magid='; # id магазина

Чтоб установить переменную окружения из скрипта необходимо выполнить команду:

select set_var('myusername', 'rudjuk');

Чтоб сосчитать:

select get_var('myusername');

02.11.09, 23:33

Сергей Рудюк 2 ноября 2009

Мы начали перевод всех сайтов, работающих на системе Корпорация 2 на работу с базой данных Postgresql. Этим предполагается повысить пропускную способность сайтов, а так же повысить масштабируемость системы в целом.

Проекты, которые будут переведены на Postgresql в первую очередь (те, которые уже работают на компонентах 2):

1. Энергия С.В.О.

2. Аквалюкс, Классик-люкс.

3. Citygroup.

4. SendAll.

5. VOtpuske.

6. Инспекция Держтехнагляда.

Проекты, которые будут переделаны с компонент 1 на компоненты 2:

1. Алерта.

2. Имидж.

3. Имрад.

4. Кулиса.

5. Lightnight.

6. Makeit.

7. Richire.

Проекты, которые будут переведены из других систем или представлений:

1. Casadaconfraria (переводится из статического вида в динамический).

2. Сайт Корпорации 2: corp2.net (Переводится из системы Битрикс в систему Корпорация 2).

02.11.09, 23:32

Сергей Рудюк 2 ноября 2009

Итак, в качестве основной базы данных мы будем использовать - PostgreSQL. Но, при этом, все равно тестироваться и работать должно будет в MySQL и Firebird.

Поэтому, в необходимо приходить к стандартам, которые устроит как MySQL так и PostgreSQL.

Рассмотрим для примера запрос:

select MK.KARTA_ID, MK.P_BALANS, MK.P_VLASN, MK.P_ZALOG, MK.P_UGON,

MK.MARKA_ID MARKA_ID,MK.VID_ID, MK.ZAV_NOMER ZAV_NOMER, MK.DVIG_NOMER DVIG_NOMER, MK.NSHAS, MK.YEAR_PROD, MK.SER_SVID SER_SVID, MK.DATA_SVID, MK.SER_ZNAK, MK.DATE_NUM, MK.KOD_F, MK.KOD_USER, MK.OLD_ID, MK.DATA_EDIT, MK.DATE_INSERT, MK.DATE_DELETE, MK.IS_DELETED, MK.DATE_COMPILE, MK.DATE_UPDATE, MK.ID_REGION_KOD ID_REGION_KOD, MK.ID_RAJON ID_RAJON, MK.ID_VID, MK.ID_KOD_F, MK.NAME_ORG NAME_ORG, MK.NAME_VID NAME_VID, MK.UPPER_ZAV_NOMER, MK.UPPER_DVIG_NOMER, MK.UPPER_NSHAS, MK.UPPER_SER_SVID, MK.UPPER_SER_ZNAK, MK.DATA_SPISAN, MK.ADDR_ORG, MK.P_REG, MK.DATA_FIRST_REG, MK.D_OLDSVID, MK.N_OLDSVID, MK.YEAR_SVID, MK.YEAR_NUM, MK.YEAR_SPISAN, MK.YEAR_FIRST_REG,MK.YEAR_

OLDSVID, MK.DATA_BALANS, MK.REGION_BALANS, MK.RAJON_BALANS, R.REGION_NAME, MO.KOD_EDRPO, MO.N_PASSP from MTP_KARTA MK

left join TBLREGIONS R

on MK.ID_REGION_KOD=R.ID_REGION_KOD

left join MTP_ORG MO

on (MK.ID_KOD_F=MO.ID_KOD_F)

and (MK.ID_REGION_KOD=MO.ID_REGION_KOD)

where (MK.MARKA_ID<>') and (MK.DATA_SPISAN is null)

and(MK.NAME_ORG like '%трактор%')

order by MARKA_ID

limit 0, 50

Данный запрос прекрасно работает в MySQL, но совершенно не работает в PostgreSQL.

Чтоб работаело и там и там нужно писать на подобии:

select MK.KARTA_ID, MK.P_BALANS, MK.P_VLASN, MK.P_ZALOG, MK.P_UGON,

MK.MARKA_ID as MARKA_ID,

MK.VID_ID,

MK.ZAV_NOMER as ZAV_NOMER,

MK.DVIG_NOMER as DVIG_NOMER, MK.NSHAS, MK.YEAR_PROD,

MK.SER_SVID as SER_SVID, MK.DATA_SVID, MK.SER_ZNAK, MK.DATE_NUM, MK.KOD_F, MK.KOD_USER, MK.OLD_ID, MK.DATA_EDIT, MK.DATE_INSERT, MK.DATE_DELETE, MK.IS_DELETED, MK.DATE_COMPILE,

MK.DATE_UPDATE, MK.ID_REGION_KOD as ID_REGION_KOD,

MK.ID_RAJON as ID_RAJON, MK.ID_VID, MK.ID_KOD_F,

MK.NAME_ORG as NAME_ORG,

MK.NAME_VID as NAME_VID, MK.UPPER_ZAV_NOMER,

MK.UPPER_DVIG_NOMER, MK.UPPER_NSHAS, MK.UPPER_SER_SVID, MK.UPPER_SER_ZNAK, MK.DATA_SPISAN, MK.ADDR_ORG, MK.P_REG, MK.DATA_FIRST_REG, MK.D_OLDSVID, MK.N_OLDSVID, MK.YEAR_SVID, MK.YEAR_NUM, MK.YEAR_SPISAN, MK.YEAR_FIRST_REG,MK.YEAR_OLDSVID, MK.DATA_BALANS, MK.REGION_BALANS, MK.RAJON_BALANS, R.REGION_NAME, MO.KOD_EDRPO, MO.N_PASSP

from MTP_KARTA MK

left join TBLREGIONS R

on MK.ID_REGION_KOD=R.ID_REGION_KOD

left join MTP_ORG MO

on (MK.ID_KOD_F=MO.ID_KOD_F)

and (MK.ID_REGION_KOD=MO.ID_REGION_KOD)

where (MK.MARKA_ID<>') and (MK.DATA_SPISAN is null)

and(MK.NAME_ORG like '%трактор%')

order by MARKA_ID

limit 50 offset 10

В чем отличие ?

1. Псевдоним поля задается через as: MK.ZAV_NOMER as ZAV_NOMER

2. В Limit указывается

не: limit 10,50

а: limit 50 offset 10

Такие конструкции работают как в mysql, так и в postgresql. У меня есть подозрение, что они есть стандартом SQL, т.е. вероятность срабатывания и в других серверах высокая.

02.11.09, 23:31

Адрес и телефон
E-mail: rs@corp2.net Skype: rudjuk
г. Киев, ул. Белорусская 30, офис. К2Р (схема проезда)
Мы в сети
Меню
www.megastock.ru Здесь находится аттестат нашего WM идентификатора 000000000000
Проверить аттестат
Наверх