Страница 3 из 31
Re: Модуль отслеживания посылок
Добавлено: Вт ноя 19, 2013 12:02 pm
sergejey
LutsenkoDenis писал(а):ага, ну ок.
- 1. Как задать составной первичный ключ? Или ключ не инкрементарный? И т.д. Судя по коду никак. Или я не прав?
Код: Выделить всё
// //new table
if (strpos($definition, "auto_increment"))
{
$definition .= ", PRIMARY KEY(" . $field . ")";
//$definition.=", KEY(".$field.")";
}
Всё верно, состоавной первичный ключ сделать таким образом не получится. Индексы можно добавлять таким образом (пример из pvalues):
Код: Выделить всё
pvalues: INDEX (PROPERTY_ID)
pvalues: INDEX (OBJECT_ID)
LutsenkoDenis писал(а):2. Структура данных как правило описывается отдельно от кода. Чтоб не нужно было бегать по коду и выискивать структуру а посмотреть в модели данных и увидеть модель всего прложения стразу. Структура(модель данных программы) поддерживается и обновляется путём создания модифицирующих скриптов.
Возможно и так. Данная реализация удобней как раз тем, что для поддержания актуальной структуры данных достаточно внести изменения в код конкретного модуля. Т.е. модуль сам заботится о том, чтобы для него всегда была в базе нужная структура данных. Децентрализация структуры и отсутсвие необходимости upgrade-скриптов это очень удобно. Не буду спорить о правильности, просто сужу по своему опыту в других проектах.
LutsenkoDenis писал(а):
3. Что должно быть тут:
Код: Выделить всё
$fileName = DIR_MODULES . $this->name . "/initial.sql";
initial.sql в целом атавизм, который крайне редко используется, но суть его в следующем -- sql-сценарии в этом файле запускаются в процессе установки/переустановки модуля, при этом система пытается этот файл изменить и закомментировать выполненные команды, чтобы они не исполнялись второй раз (при переустановке). Для корректной работы последней части необходимо, чтобы в linux-версии стояли права записи в этот файл. Но, повторюсь, я этим механизмом ни в одном из существующих модулей не пользовался.
LutsenkoDenis писал(а):
4. Зачем нужен LogFile? Или DebMes мало?
[/list]
Э... не очень понял о каком LogFile идёт речь? Нет такой функции... а LoadFile это просто загрузка файла.
Re: Модуль отслеживания посылок
Добавлено: Вт ноя 19, 2013 12:47 pm
LutsenkoDenis
Про LogFile... да действительно фигню написал, прочитал LogFile вместо LoadFile
Индексы в данном случае не нужны. Но в вообще может быть не по одному индексу на таблицу и индекс может быть тоже составной.
Про правильность структуры я как раз по этой же самой причине и не писал.
Т.к. может быть по разному реализовано.
Re: Модуль отслеживания посылок
Добавлено: Сб ноя 30, 2013 12:47 pm
DiArt
Сегодня решил обновить с гитхаба. получилитакую картинку. что поправить?
Re: Модуль отслеживания посылок
Добавлено: Вс дек 01, 2013 12:01 am
LutsenkoDenis
можно либо забить на это сообщение,
либо переоздать все таблицы относящиеся к данному приложению.
Сообщение о том, что была неудачная попытка удалить таблицу POST_TRACK т.к. в таблице есть номера треков и по ним имеется информация в таблице POST_TRACKINFO.
На днях удалю пересоздание таблиц из приложения.
Re: Модуль отслеживания посылок
Добавлено: Вс дек 01, 2013 10:37 am
DiArt
А пересоздавать как? Вручную чистить через phpmaadmin? Если так то какие ключи и где находятся
Re: Модуль отслеживания посылок
Добавлено: Ср дек 18, 2013 6:32 am
dmitriy77
Аналогичная ошибка, удалось что нибудь сделать? Только добавил приложение, и сразу она выскакивает
Re: Модуль отслеживания посылок
Добавлено: Ср дек 18, 2013 3:36 pm
LutsenkoDenis
Сори за долгое отсутствие
переливал систему.
код по очистке данных таблиц с сохранением данных во временный таблицах.
Код: Выделить всё
create table TMP_POST_PROXY as select * from POST_PROXY;
create table TMP_POST_MAIL as select * from POST_MAIL;
create table TMP_POST_TRACK as select * from POST_TRACK;
create table TMP_POST_TRACKINFO as select * from POST_TRACKINFO;
drop table if exists POST_PROXY;
drop table if exists POST_MAIL;
drop table if exists POST_TRACKINFO;
drop table if exists POST_TRACK;
create table POST_PROXY(
FLAG_PROXY VARCHAR(1) not null default 'N',
PROXY_HOST VARCHAR(64),
PROXY_PORT VARCHAR(4),
PROXY_USER VARCHAR(64),
PROXY_PASSWD VARCHAR(64),
LM_DATE DATETIME not null,
primary key (FLAG_PROXY)
);
insert into POST_PROXY(FLAG_PROXY, PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASSWD, LM_DATE)
select * from TMP_POST_PROXY;
create table POST_MAIL
(
FLAG_SEND VARCHAR(1) not null default 'N',
LM_DATE DATETIME not null,
NOTIFY_EMAIL VARCHAR(64),
NOTIFY_SUBJ VARCHAR(255),
primary key (FLAG_SEND)
);
insert into POST_MAIL(FLAG_SEND, LM_DATE, NOTIFY_EMAIL, NOTIFY_SUBJ)
select * from POST_MAIL;
create table POST_TRACK
(
TRACK_ID VARCHAR(14) not null,
TRACK_NAME VARCHAR(64) not null,
FLAG_CHECK VARCHAR(1) not null default 'Y',
TRACK_DATE DATETIME not null,
LM_DATE DATETIME not null,
primary key (TRACK_ID)
);
insert into POST_TRACK(TRACK_ID, TRACK_NAME, FLAG_CHECK, TRACK_DATE, LM_DATE)
select * from TMP_POST_TRACK;
create table POST_TRACKINFO
(
TRACK_ID VARCHAR(14) not null,
OPER_DATE DATETIME not null,
OPER_TYPE INT(10) not null,
OPER_NAME VARCHAR(64) not null,
ATTRIB_ID INT(10),
ATTRIB_NAME VARCHAR(64),
OPER_POSTCODE INT(10),
OPER_POSTPLACE VARCHAR(64) not null,
ITEM_WEIGHT DECIMAL(10,6),
DECLARED_VALUE DECIMAL(10,6),
DELIVERY_PRICE DECIMAL(10,6),
DESTINATION_POSTCODE INT(10),
DELIVERY_ADDRESS VARCHAR(255),
LM_DATE DATETIME not null,
primary key (TRACK_ID, OPER_DATE)
);
insert into POST_TRACKINFO(TRACK_ID, OPER_DATE, OPER_TYPE, OPER_NAME, ATTRIB_ID, ATTRIB_NAME, OPER_POSTCODE, OPER_POSTPLACE, ITEM_WEIGHT, DECLARED_VALUE, DELIVERY_PRICE, DESTINATION_POSTCODE, DELIVERY_ADDRESS, LM_DATE)
select * from TMP_POST_TRACKINFO;
остальное постараюсь сделать в ближайшее время.
Re: Модуль отслеживания посылок
Добавлено: Чт дек 19, 2013 5:19 am
Amarok
LutsenkoDenis писал(а):код по очистке данных таблиц с сохранением данных во временный таблицах.
А что с ним делать?
LutsenkoDenis писал(а):остальное постараюсь сделать в ближайшее время.
Сортировка заработает? УРА!
Re: Модуль отслеживания посылок
Добавлено: Чт дек 19, 2013 8:23 am
LutsenkoDenis
Новый релиз будет сегодня-завтра, ну самый край в выходные.
Проверить работоспособность не получается, т.к. не могу никак настроить удалённую отладку(xdebug) ;-(
А выкладывать релиз не проверив как-то не очень хочется.
Re: Модуль отслеживания посылок
Добавлено: Сб дек 21, 2013 9:20 pm
LutsenkoDenis