При обновлении данных в базе, происходит потеря данных.

gleb_se

Новичок
При обновлении данных в базе, происходит потеря данных, подскажите что нить.

Есть болезненная проблема.
Для начала попробую рассказать саму реализацию и потом проблему:

Есть таблица в базе «tpl»
В ней хранятся шаблоны сущностей, допустим мы создали сущность книги, с параметрами (Name)название, (Color)цвет обложки, (Article)артикул, (Autor)имя автора.

В другой базе «essence», хранятся данные по сущностям, пример: двум книгам:
Name = Тестовая книга, Color = красная, Article = a1, Autor = Новый автор
Name = Пробная книга, Color = красная, Article = б1, Autor = Новый автор
Мы сохраняем через serialize массив, но без значений, а только ссылки на другую базу «essence_params», где как раз значения и названия параметров должны хранится.

Есть ещё база «essence_vars» четвёртая, на которую ссылается третья, в ней хранятся значения без дубляжей, то есть на пример «красная» записывается один раз и после сколько бы раз «красная» не использовалось, в третью вместо значения, сохраняется ссылка на запись «красная» из четвёртой базы.

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

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

Постарался облегчить, убрал создание миниатюр, но если инет тугой, всё равно данные при обновлении теряются.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
1. Создание тем с малосодержательным название запрещено правилами форума.

2. Где вы такую траву берёте?

3. Думаете кто-нибудь понял суть Вашей проблемы?
 

gleb_se

Новичок
Прошу извинить за неумение точно выразить мысль.

Вообще, данный вопрос только к тем, кто пробовал что-то похожее реализовывать, они поймут, о чём речь.

Вот частичная структура базы:

[sql]
CREATE TABLE `tpl` (
`idname` int(255) unsigned default '0',
`name` varchar(255) default '',
`vars` mediumtext,
UNIQUE KEY `idname` (`idname`)
) TYPE=MyISAM;

CREATE TABLE `essence` (
`idname` int(255) unsigned default '0',
`tpl` int(255) unsigned default '0',
`params` mediumtext,
UNIQUE KEY `idname` (`idname`)
) TYPE=MyISAM;

CREATE TABLE `essence_params` (
`id` int(255) unsigned auto_increment,
`main` int(255) unsigned default '0',
`send` int(255) unsigned default '0',
`name` varchar(255) default '',
`text` text,
PRIMARY KEY (`id`)
) TYPE=MyISAM;

CREATE TABLE `essence_vars` (
`id` int(255) unsigned auto_increment,
`name` varchar(255) default '',
`text` varchar(255) default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
[/sql]
 

tf

крылья рулят
gleb_se, отладку пробовали, программируете давно?

-~{}~ 03.09.07 00:22:

Mr_Max, ну я допустим понял, а толку?

-~{}~ 03.09.07 00:24:

Теперь проблема, всё и вся отлично работает, только вот когда именно обновляешь, но не сохраняешь данные и изображения с изготовлением миниатюр и без, очень уж часто происходят потери, бац и сущность сохранила ссылки, а самих записей значений нет, хотя, ссылки это id, который возвращается только после записи значения в базу.
DELETE зло
ищи в коде корявый кусок
 

alpine

Новичок
gleb_se
Тоесть проблему ты так и не локализовал. Могу посоветовать сделать детальное логирование и локализовать проблему. Гадать где там у тебя что-то из-за чего-то теряется - занятие неблагодарное.

-~{}~ 02.09.07 23:31:

tf
DELETE зло
ищи в коде корявый кусок
... она земля. Ищи в земле ... (с) кинофильм "13 воин"
Шаман однако. :D
 

gleb_se

Новичок
Не так чтоб долго, лет 5 на php.

Суть в том, что на моём сервере таких проблем вообще не возникало, работает как часы, а на хостинге, особенно когда хостинг тормозит, частенько слетает. И хоть убей, всё перепробовал, уже вроде всё должно работать и данных не много, но через раз слетает.

В любом случае спасибо, буду искать причину.
 

gleb_se

Новичок
Тему можно закрывать, ошибка найдена и исправлена.
Всем спасибо!
 
Сверху