Безопасный импорт данных

StalkerClasses

Новичок
И наверное последний вопрос по импорту, т.к. все эти заморочки в основном из-за того что Excel не открывает with BOM.
С точки зрения содержимого файлов импорта есть ли разница что конвертировать в c BOM и в без BOM.
 

ksnk

прохожий
Лучше иметь возможность для каждого клиента настроить индивидуальный формат. В среднем, достаточно выдавать csv с BOM всем, разве что клиент будет отдельно плакать и просить старый формат.
 

StalkerClasses

Новичок
Следующий вопрос будет про экспорт/импорт файлов и картинок.
Тоже до него уже давно хотел добраться.

Спасибо - разобрался с UTF-8.
Было очень не удобно постоянно туда-сюда гонять Excel.
 

StalkerClasses

Новичок
Вот кстати поискал к вопросу выше.
Но это больше тянет на отдельную тему.

Есть модуль экспорта/импорта пользователей.
А если нужно аватарку (картинку) экспортировать/импортировать?
 

AnrDaemon

Продвинутый новичок
Да что же вы так сильно не любите удобство?…
 

ksnk

прохожий
Да что же вы так сильно не любите удобство?…
Мы тут страницу целую трепались про бом и кодировки. В этом "удобстве" они есть? Начинаем с начала? )))

StalkerClasses
Про OctoberCms разумнее спрашивать в службе поддержки. Тут, похоже специалистов по нему нет.
 

StalkerClasses

Новичок
Уже сделал.
Пробовал разные библиотеки. Исползовал стандартный CSV-php.
Код выше скидывал.
 

StalkerClasses

Новичок
Мы тут страницу целую трепались про бом и кодировки. В этом "удобстве" они есть? Начинаем с начала? )))

StalkerClasses
Про OctoberCms разумнее спрашивать в службе поддержки. Тут, похоже специалистов по нему нет.
Я нашел видео где показывают примеры как делают экспорт/импорт изображений.
Полагал что есть вариант загрузить как-то картинки в 1 файл и после качать либо загружать его и разбирать.

А здесь получается что они через FTP-условно говоря туда-сюда гоняют их.
 

StalkerClasses

Новичок
Вопрос про ID в импортируемых данных.

Как наиболее логично сделать обработку ID-поля при импорте когда указанного ID нет в базе данных.

Пример.

ID=0 - создается новая запись
ID=существующая запись в БД - запись обновится с данных ID.
ID=не существующая запись - что более логично сделать - создать запись с таким ID или проигнорировать?
 

ksnk

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

StalkerClasses

Новичок
В собственную.
Я описал три возможных ситуации как обрабатыать поле ID - и соответственно от этого принимать решение как обработать строку. У меня могут вестись две одинаковые БД по структуре но с разными данными. В одной будет одно, в другой другое с разными ID.

Если я попробую слить две базы данных в 1 - какие-то данные по идее должны совпасть, а какие-то быть уникальными.
Вот и хочу понять как лучше обрабатывать поле ID.
 

WMix

герр M:)ller
Партнер клуба
я не разрешал бы использовать id, создал бы поле nr для пользовотельских манипуляций
nr = 0 - ошибка, остальное insert/update
 

StalkerClasses

Новичок
Не совсем понял что за поле nr?
У меня для связей сделано 1 (или 1Add) - будет добавлена связь, 1Del - связь будет удалена, T - будут очищены все связи.
 

StalkerClasses

Новичок
Так получилось что я завел две разных базы данных с одинаковой структурой один в один.

В первой базе есть 7 колодцев (ID = 1,2,3,4,5,6,7).
Во второй базе есть 8 колодцев (ID = 1,2,3,4,5,6,7,8).

Как мне их теперь слить в одну?
В первой базе и во второй базе для каждого колодца очень много чего выбирается (арматура, протоколы, бетон, техника и прочее, каждый также имеет свой ID).

Я правильно понимаю что вы предлагаете помимо поля ID добавить еще поле идентифицирующие запись?
Оно может быть сделано в виде артикула колодца - PK1012.
Но в связях то все равно выбран ID записи - как быть?

чет я не понял что ты делаешь

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

ksnk

прохожий
В первой базе есть 7 колодцев (ID = 1,2,3,4,5,6,7).
Во второй базе есть 8 колодцев (ID = 1,2,3,4,5,6,7,8).
А если усугубить ситуацию? К примеру и в первой и во второй базе были добавлены колодцы, но разные. Очевидно ID у них обоих получились 8. Как сливать ?
 

StalkerClasses

Новичок
А если усугубить ситуацию? К примеру и в первой и во второй базе были добавлены колодцы, но разные. Очевидно ID у них обоих получились 8. Как сливать ?
Может быть не совсем точно выразился.
В первой и во второй базе - это совершенно разные колодцы. В них нет одинаковых колодцев.
 

StalkerClasses

Новичок
По поводу ID - решил оставить все как есть.
Если ID не существует в БД - то ничего не обновляется и не добавляется.
Просто вторую базу я буду вынужден подкорректировать - переименовать ID-в сторону увеличения и импортировать CSV по одной таблице.
 

WMix

герр M:)ller
Партнер клуба
Если есть «чужая» база, то ее идентификацию перенимать себе глупо, у тебя своя, по своим правилам созданная. Обычно договариваются о дополнительном поле, типа номер, который в твоей базе на каждую из таких «чужих» уникален. (этот номер может быть одинаков id, но думай об этом как о совпадении)
 

StalkerClasses

Новичок
Если есть «чужая» база, то ее идентификацию перенимать себе глупо, у тебя своя, по своим правилам созданная. Обычно договариваются о дополнительном поле, типа номер, который в твоей базе на каждую из таких «чужих» уникален. (этот номер может быть одинаков id, но думай об этом как о совпадении)
Во второй БД решил изменить ID при импорте данных.
Единственный вопрос - вот если добавить поле артикул - то в связанных таблицах то получается идет связь по ID а не по артикулу. И смысла на замену как артикула нет.
 
Сверху